
進(jìn)程和線程的根本區(qū)別是進(jìn)程是操作系統(tǒng)資源分配的基本單位,而線程是處理器任務(wù)調(diào)度和執(zhí)行的基本單位 。另外區(qū)別還有資源開銷、包含關(guān)系、內(nèi)存分配、影響關(guān)系、執(zhí)行過程等 。
資源開銷:每個進(jìn)程都有獨(dú)立的代碼和數(shù)據(jù)空間(程序上下文),程序之間的切換會有較大的開銷;線程可以看做輕量級的進(jìn)程,同一類線程共享代碼和數(shù)據(jù)空間,每個線程都有自己獨(dú)立的運(yùn)行棧和程序計(jì)數(shù)器(PC),線程之間切換的開銷小 。
包含關(guān)系:如果一個進(jìn)程內(nèi)有多個線程,則執(zhí)行過程不是一條線的,而是多條線(線程)共同完成的;線程是進(jìn)程的一部分,所以線程也被稱為輕權(quán)進(jìn)程或者輕量級進(jìn)程 。
內(nèi)存分配:同一進(jìn)程的線程共享本進(jìn)程的地址空間和資源,而進(jìn)程之間的地址空間和資源是相互獨(dú)立的 。
影響關(guān)系:一個進(jìn)程崩潰后,在保護(hù)模式下不會對其他進(jìn)程產(chǎn)生影響,但是一個線程崩潰整個進(jìn)程都死掉 。所以多進(jìn)程要比多線程健壯 。
執(zhí)行過程:每個獨(dú)立的進(jìn)程有程序運(yùn)行的入口、順序執(zhí)行序列和程序出口 。但是線程不能獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個線程執(zhí)行控制,兩者均可并發(fā)執(zhí)行 。
【進(jìn)程和線程的區(qū)別】進(jìn)程和線程的根本區(qū)別是進(jìn)程是操作系統(tǒng)資源分配的基本單位,而線程是處理器任務(wù)調(diào)度和執(zhí)行的基本單位 。
推薦閱讀
- 平郵和快遞的區(qū)別
- 防盜門怎么調(diào)門框和門的間隙
- 平板電腦和筆記本的區(qū)別
- 偏旁和部首的區(qū)別
- 非洲花梨木和緬甸花梨木的區(qū)別是什么
- 石英管和碳纖維管區(qū)別有哪些
- 腰線層是什么意思
- 清漆和水性漆有什么區(qū)別
- 草芥人命和草菅人命是什么意思
- 龑是什么意思和寓意
