父進(jìn)程和子進(jìn)程可以并發(fā)執(zhí)行;不管是父進(jìn)程還是子進(jìn)程都是系統(tǒng)分配資源的最小單位,都是獨(dú)立的進(jìn)程,是可以并發(fā)運(yùn)行的,并發(fā)在微觀上不是同時(shí)執(zhí)行的,只是把時(shí)間分成若干段,使多個(gè)進(jìn)程快速交替的執(zhí)行,從宏觀外來看,好像是這些進(jìn)程都在執(zhí)行。
千萬級(jí)數(shù)據(jù)并發(fā)如何處理?進(jìn)入學(xué)習(xí)
本教程操作環(huán)境:windows10系統(tǒng)、DELL G3電腦。
父進(jìn)程和子進(jìn)程可以并發(fā)執(zhí)行嗎?
可以并發(fā)運(yùn)行,因?yàn)椴还苁歉高M(jìn)程還是子進(jìn)程都是系統(tǒng)分配資源的最小單位,都是獨(dú)立的進(jìn)程,是可以并發(fā)運(yùn)行的,跟進(jìn)程和線程的關(guān)系不一樣。
“并行”是指無論從微觀還是宏觀,二者都是一起執(zhí)行的,就好像兩個(gè)人各拿一把鐵锨在挖坑,一小時(shí)后,每人一個(gè)大坑。
“并發(fā)”在微觀上不是同時(shí)執(zhí)行的,只是把時(shí)間分成若干段,使多個(gè)進(jìn)程快速交替的執(zhí)行,從宏觀外來看,好像是這些進(jìn)程都在執(zhí)行,這就好像兩個(gè)人用同一把鐵锨,輪流挖坑,一小時(shí)后,兩個(gè)人各挖一個(gè)小一點(diǎn)的坑,要想挖兩個(gè)大一點(diǎn)得坑,一定會(huì)用兩個(gè)小時(shí)。
從以上本質(zhì)不難看出,“并發(fā)”執(zhí)行,在多個(gè)進(jìn)程存在資源沖突時(shí),并沒有從根本提高執(zhí)行效率。
父子進(jìn)程就是并發(fā)的。
在單處理器時(shí),多進(jìn)程并沒有多大意義,單處理器的多任務(wù)處理只能是并發(fā)(交替以時(shí)間片輪詢的),此時(shí)宏觀上是多任務(wù)一起進(jìn)行,實(shí)際在微觀上卻是以時(shí)間片交替進(jìn)行,所以雖是在宏觀上一起運(yùn)行,但所用的時(shí)間與一個(gè)進(jìn)程一個(gè)進(jìn)程的執(zhí)行并沒有節(jié)省多少,當(dāng)有進(jìn)程需要掛起或睡眠時(shí)有可能時(shí)間會(huì)一點(diǎn),但若是沒有掛起或睡眠時(shí),時(shí)間可能就會(huì)需要長一點(diǎn),因?yàn)樵跁r(shí)間片上不斷進(jìn)程轉(zhuǎn)換內(nèi)核也是需要消耗的。
但在多處理器時(shí),多任務(wù)就真的能做到并行性了,多個(gè)進(jìn)程分別在不同處理器上執(zhí)行,僅在資源沖突和需要同步時(shí),停頓等待一下,其它時(shí)間真正做到異步同時(shí)執(zhí)行。但如上所說,當(dāng)多個(gè)進(jìn)程存在資源沖突時(shí),并沒有從根本提高執(zhí)行效率。