如何選擇使用多程序還是多執行緒
經典的一句話:
「程序是資源分配的最小單位,執行緒是cpu排程的最小單位」
多執行緒的優點:a 資料共享方便(不需要程序間的通訊)b 占用系統記憶體小 c 提高cpu利用率
多執行緒的缺點:a 除錯困難 b 防止讀寫競爭,鎖機制 c 程式設計複雜
多程序的優點:a. 乙個程序core掉不會影響到其他程序 b. 程式設計簡單
多程序的缺點:a 耗資源
1. 需要頻繁建立銷毀的優先用執行緒原因請看上面的對比。這種原則最常見的應用就是web伺服器了
2. 需要進行大量計算的優先使用執行緒所謂大量計算,當然就是要耗費很多cpu,切換頻繁了,這種情況下執行緒是最合適的。這種原則最常見的是影象處理、演算法處理。
3. 強相關的處理用執行緒,弱相關的處理用程序
4. 可能要擴充套件到多機分布的用程序
如果多程序和多執行緒都能夠滿足要求,那麼選擇你最熟悉、最拿手的那個。需要提醒的是:雖然我給了這麼多的選擇原則,但實際應用中基本上都是「程序+執行緒」的結合方式,
多執行緒還是多程序的選擇及區別
魚還是熊掌 多程序多執行緒的選擇 關於多程序和多執行緒,教科書上最經典的一句話是 程序是資源分配的最小單位,執行緒是cpu排程的最小單位 這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這麼簡單了,選的不好,會讓你深受其害。經常在網路上看到有的xdjm問 多程序好還是多執行緒好?...
多程序多執行緒的選擇
關於多程序和多執行緒,教科書上最經典的一句話是 程序是資源分配的最小單位,執行緒是cpu排程的最小單位 這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這麼簡單了,選的不好,會讓你深受其害。經常在網路上看到有的xdjm問 多程序好還是多執行緒好?linux下用多程序還是多執行緒?...
多程序多執行緒的選擇
程序是作業系統分配資源 cpu時間 記憶體 的基本單位,執行緒是排程執行的基本單元。乙個執行緒必定屬於乙個程序,乙個程序可包含多個執行緒。nginx redis是常見的多程序模型,tomcat memcached是多執行緒模型。多程序資料共享複雜,需要用管道,訊號,訊息佇列,共享記憶體,套接字等通訊...