我正在用C編寫一個簡單的客戶服務器。製作多進程服務器而不是多線程服務器的優點是什麼?多進程服務器或多線程服務器?
-3
A
回答
1
如果不知道你的平臺,這是不現實的答案。傳言表明,在Windows上啓動新進程非常昂貴,但開始新線程幾乎是免費的。所以如果性能是唯一的考慮因素,Windows環境更喜歡線程。
在Linux上,線程是作爲新進程的特殊情況變體實現的。他們幾乎都是免費的。選擇哪一個會導致長期的最佳代碼。
在其他平臺上,線程可能更昂貴 - 或者可能無法使用多個處理器。在這些平臺上,選擇進程。
當然,這不僅僅是純粹的表現。 很好,關於shared-nothing designs - 如果您從程序中刪除所有共享數據,可以極大地降低同時訪問這些數據結構的代碼段中可能出現的錯誤。此外,由於進程不共享運行時內存,因此危害一個進程的攻擊者可能無法控制其他進程。 (或者,這可能更困難。)線程只會讓攻擊者閱讀任何想要的內容。
0
優點使得多進程服務器,而不是多線程之一的:
各處理的受保護存儲器空間防止一個過程存儲的不希望的損壞,從另一個。
缺點使得多進程服務器,而不是多線程之一的:
各處理的受保護存儲器空間防止期望的一個過程和另一個之間的直接通信。
看看你的要求,你挑..
相關問題
- 1. 多線程Web服務器
- 2. Java服務器多線程
- 3. 多線程服務器Java
- 4. TCP多線程服務器
- 5. 多線程服務器
- 6. 多進程網絡服務器vs多線程網絡服務器?
- 7. 多線程服務器:SwingWorker Vs線程?
- 8. 線程加入多線程服務器
- 9. 多線程/多進程窗口服務
- 10. 退出多線程/多進程的Web服務器
- 11. 多線程Web應用程序與多線程Web服務器
- 12. 多線程回聲服務器
- 13. Java多線程服務器套接字
- 14. 測試多線程UDP服務器(Java)
- 15. 調試多線程服務器
- 16. 多線程彗星服務器庫
- 17. C++中的多線程Web服務器
- 18. GWT(服務器端)多線程可能
- 19. 客戶端 - 服務器多線程
- 20. 多線程的Java Web服務器
- 21. Windows服務計時器多線程
- 22. 多線程服務器問題
- 23. Java多線程服務器客戶端
- 24. 多線程聊天服務器
- 25. 具有多線程的C++服務器
- 26. 多線程服務器不工作
- 27. C中的多線程TCP服務器
- 28. Python的多線程服務器XMLRPC(?)
- 29. 多線程客戶端服務器
- 30. 多線程服務器發送功能
你經過研究,瞭解進程和線程,你不需要問這個問題。 – 2012-03-14 11:16:30