多線程vs多進程

多線程的最主要優點是:共享數據方便(都在一個地址空間,不需要IPC);可移植性好。
    多進程的最主要優點是:可靠性較高(進程間彼此隔絕,一個進程被OOXX不會影響其他進程);能夠在外部監控(因爲進程是操作系統分配資源的對象)。
    開發難度:多線程比較簡單,因爲不用去搞體位繁多的IPC,故不容易被不熟悉的API陰到。
    調試難度:都很麻煩,是開發者的噩夢。所以需要多些單元測試,多測試,多做日誌,少調試。
   
    對於選擇的建議:
    需要能工作在windows => 多線程
    線程/進程間沒有什麼需要共享的數據 => 多進程優先,反之多線程優先。需要共享的數據越多越複雜,多線程得分越高。
    對可靠性要求高 => 取決於開發團隊,無數優秀產品證明多線程程序可以堅如磐石,但未必每個團隊都能做到。
    需要監控單個工作者佔用的資源 => 多進程
    開始學習併發編程 => 多線程,學習曲線較低,要掌握的API較少
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章