多線程vs多進程
多線程的最主要優點是:共享數據方便(都在一個地址空間,不需要IPC);可移植性好。
多進程的最主要優點是:可靠性較高(進程間彼此隔絕,一個進程被OOXX不會影響其他進程);能夠在外部監控(因爲進程是操作系統分配資源的對象)。
開發難度:多線程比較簡單,因爲不用去搞體位繁多的IPC,故不容易被不熟悉的API陰到。
調試難度:都很麻煩,是開發者的噩夢。所以需要多些單元測試,多測試,多做日誌,少調試。
對於選擇的建議:
需要能工作在windows => 多線程
線程/進程間沒有什麼需要共享的數據 => 多進程優先,反之多線程優先。需要共享的數據越多越複雜,多線程得分越高。
對可靠性要求高 => 取決於開發團隊,無數優秀產品證明多線程程序可以堅如磐石,但未必每個團隊都能做到。
需要監控單個工作者佔用的資源 => 多進程
開始學習併發編程 => 多線程,學習曲線較低,要掌握的API較少
多進程的最主要優點是:可靠性較高(進程間彼此隔絕,一個進程被OOXX不會影響其他進程);能夠在外部監控(因爲進程是操作系統分配資源的對象)。
開發難度:多線程比較簡單,因爲不用去搞體位繁多的IPC,故不容易被不熟悉的API陰到。
調試難度:都很麻煩,是開發者的噩夢。所以需要多些單元測試,多測試,多做日誌,少調試。
對於選擇的建議:
需要能工作在windows => 多線程
線程/進程間沒有什麼需要共享的數據 => 多進程優先,反之多線程優先。需要共享的數據越多越複雜,多線程得分越高。
對可靠性要求高 => 取決於開發團隊,無數優秀產品證明多線程程序可以堅如磐石,但未必每個團隊都能做到。
需要監控單個工作者佔用的資源 => 多進程
開始學習併發編程 => 多線程,學習曲線較低,要掌握的API較少
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
一文講透“進程,線程和協程”
雲棲號資訊小哥
2020-08-05 15:37:51
連續 3 年最受歡迎:Rust,香!
雲棲號資訊小編
2020-07-21 13:01:52
Python初學者的自我修養,找到自己的方向
雲棲號資訊小哥
2020-07-16 15:19:52
java多線程方式導入excel數據入數據庫
weixin_42982636
2020-07-08 11:21:30
Linux C/C++編程之(十七)進程間通信
我是管小亮
2020-07-08 10:47:44
6.4 ThreadPoolExecutor線程池的關閉方法shutdown和shutdownNow區別、示例
一点光辉
2020-07-08 10:46:31
linux下的線程池的實現
xiyuan255
2020-07-08 10:33:42
多線程輪流交替執行三種實現方法
沐雨金鳞
2020-07-08 10:30:45
想要職級到P7,啃完這946頁阿里P8面試官都說詳細的神仙文檔足矣
mrchaochao
2020-07-08 10:00:46
多線程Syschronized
qq_43516647
2020-07-08 09:39:18
ReentrantReadWriteLock——讀寫鎖如何升級,爲何讀寫鎖不能插隊?
zhangkaixuan456
2020-07-08 07:49:43
LeetCode(1195):交替打印字符串 Fizz Buzz Multithreaded(JUC)
NJU_ChopinXBP
2020-07-08 06:56:30
Handler這些巧妙設計你知道多少?
涂程
2020-07-08 06:07:33