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