您好,登錄后才能下訂單哦!
這類我總結了一些進程與線程的特點和選取方法,若有錯誤,不吝指正(^.^)
進程是資源分配的最小單位,線程是CPU調度的最小單位(基本概念啦)
數據同步與共享:(平分秋色)
進程共享復雜需要IPC,數據分開同步簡單;
線程共享進程數據,共享簡單,但因此同步復雜;
內存CPU:(線程占優)
進程占用內存多,切換復雜,CPU利用率低;
線程占用內存少,切換簡單,CPU利用率高;
創建銷毀和切換:(線程占優)
進程復雜且慢;
線程簡單且塊;
編程與調試:(進程占優)
進程編程與調試簡單;
線程編程與調試復雜;
可靠性:(進程占優)
進程間不會影響;
線程dump整個進程dump;
分布式:(進程占優)
進程適應多核多機分布式,一個機子不夠擴展到多臺機器方便;
線程適應多核分布式;
優先情況:
線程優先頻繁創建銷毀,如Web服務器,一個連接建立一個線程,斷開則銷毀;
線程優先進行大量計算,如圖像處理、算法處理,因為要消耗許多CPU,切換頻繁;
線程優先強相關處理、線程優先弱相關處理,強相關是當一列變量變化時另一列變量變化的可能性非常大的關系(如供求與價格),弱相關相反。這并不是一成不變的,要按照實際情況調整;
線程優先多核分布,進程優先多機分布;
都滿足時選擇最熟悉且拿手的方式。
在周麗論文的實驗中(博客上看的,大家可以搜到),任務量較大(此處是255線程/進程,輸出文字到控制臺和日志文件,打印1000次時時間開銷進程小于線程,因為有線程棧)進程效率高;
線程的銷毀開銷確實小于進程(在10萬個線程/進程的環境下,線程開銷是進程的約13分之一,同樣是周麗論文的實驗中的數據),因此在有大量銷毀的情況優先考慮線程。
可以改進的地方就評個論啦
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。