首頁  >  文章  >  父行程和子行程可以並發執行嗎?

父行程和子行程可以並發執行嗎?

WBOY
WBOY原創
2022-09-02 11:29:403763瀏覽

父進程和子進程可以並發執行;不管是父進程還是子進程都是系統分配資源的最小單位,都是獨立的進程,是可以並發運行的,並發在微觀上不是同時執行的,只是把時間分成若干段,使多個進程快速交替的執行,從宏觀外來看,好像是這些進程都在執行。

父行程和子行程可以並發執行嗎?

本教學操作環境:windows10系統、DELL G3電腦。

父進程和子進程可以並發執行嗎?

可以並發運行,因為不管是父進程還是子進程都是系統分配資源的最小單位,都是獨立的進程,是可以並發運行的,跟進程和執行緒的關係不一樣。

並行」是指無論從微觀或宏觀,二者都是一起執行的,就好像兩個人各拿一把鐵鍁在挖坑,一小時後,每人一個大坑。

並發」在微觀上不是同時執行的,只是把時間分成若干段,使多個進程快速交替的執行,從宏觀外來看,好像是這些進程都在執行,這就好像兩個人用同一把鐵鍁,輪流挖坑,一小時後,兩個人各挖一個小一點的坑,要想挖兩個大一點得坑,一定會用兩個小時。

從以上本質不難看出,「並發」執行,在多個進程存在資源衝突時,並沒有從根本提高執行效率。

父子流程就是並發的。

在單處理器時,多進程並沒有多大意義,單處理器的多任務處理只能是並發(交替以時間片輪詢的),此時宏觀上是多任務一起進行,實際上在微觀上卻是以時間片交替進行,所以雖是在宏觀上一起運行,但所用的時間與一個進程一個進程的執行並沒有節省多少,當有進程需要掛起或睡眠時有可能時間會一點,但若是沒有掛起或睡眠時,時間可能就會需要長一點,因為在時間片上不斷進程轉換內核也是需要消耗的。

但在多處理器時,多任務就真的能做到並行性了,多個進程分別在不同處理器上執行,僅在資源衝突和需要同步時,停頓等待一下,其它時間真正做到異步同時執行。但如上所說,當多個進程存在資源衝突時,並沒有從根本提高執行效率。

更多相關知識,請造訪常見問題欄位!

以上是父行程和子行程可以並發執行嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn