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