進程與線程
1、什么是進程、線程,有什么區(qū)別?
進程是資源(CPU、內(nèi)存等)分配的基本單位,線程是 CPU 調(diào)度和分配的基本單位(程序執(zhí)行的最小單位)。如果 CPU 是單核,同一時間只有一個進程在執(zhí)行,多核 CPU 可以同一時間點有多個進程在執(zhí)行。
2、多進程、多線程的優(yōu)缺點
一個進程由進程控制塊、數(shù)據(jù)段、代碼段組成,進程本身不可以運行程序,而是像一個容器一樣,先創(chuàng)建出一個主線程,分配給主線程一定的系統(tǒng)資源,這時候就可以在主線程開始實現(xiàn)各種功能。
當我們需要實現(xiàn)更復雜的功能時,可以在主線程里創(chuàng)建多個子線程,多個線程在同一個進程里,利用這個進程所擁有的系統(tǒng)資源合作完成某些功能。
優(yōu)缺點:
一個進程死了不影響其他進程,一個線程崩潰很可能影響到它本身所處的整個進程。
創(chuàng)建多進程的系統(tǒng)花銷大于創(chuàng)建多線程。
多進程通訊因為需要跨越進程邊界,不適合大量數(shù)據(jù)的傳送。多線程無需跨越進程邊界,適合大量數(shù)據(jù)的傳送。
3、什么時候用進程,什么時候用線程
創(chuàng)建和銷毀較頻繁使用線程,因為創(chuàng)建進程花銷大。
需要大量數(shù)據(jù)傳送使用線程,因為多線程切換速度快,不需要跨越進程邊界。
安全穩(wěn)定選進程;快速頻繁選線程;
-
cpu
+關(guān)注
關(guān)注
68文章
10698瀏覽量
209329 -
Linux
+關(guān)注
關(guān)注
87文章
11123瀏覽量
207894 -
線程
+關(guān)注
關(guān)注
0文章
501瀏覽量
19580
發(fā)布評論請先 登錄
相關(guān)推薦
評論