設計并發服務器,使用多進程與多線程有什么區別?
答案一:
根本區別就一點:用多進程每個進程有自己的地址空間(address space),線程則共享地址空間。所有其它區別都是由此而來的:
1。速度:線程產生的速度快,線程間的通訊快、切換快等,因為他們在同一個地址空間內。
2。資源利用率:線程的資源利用率比較好也是因為他們在同一個地址空間內。
3。同步問題:線程使用公共變量/內存時需要使用同步機制還是因為他們在同一個地址空間內。
答案二:
1,進程:子進程是父進程的復制品。子進程獲得父進程數據空間、堆和棧的復制品。
2,線程:相對與進程而言,線程是一個更加接近與執行體的概念,它可以與同進程的.其他線程共享數據,但擁有自己的棧空間,擁有獨立的執行序列。
兩者都可以提高程序的并發度,提高程序運行效率和響應時間。
線程和進程在使用上各有優缺點:線程執行開銷小,但不利于資源管理和保護;而進程正相反。同時,線程適合于在SMP機器上運行,而進程則可以跨機器遷移。
【設計并發服務器,使用多進程與多線程有什么區別?】相關文章:
WEB服務器與應用服務器有什么區別11-08
茴香與孜然有什么區別10-06
裸妝與淡妝有什么區別10-08
紋眉與繡眉有什么區別09-14
Linux下子進程與父進程的關系08-12
怎么使用代理服務器08-07
Flash與AE制作動畫有什么區別09-09
專插本與專升本有什么區別05-13
藍山咖啡與普通咖啡有什么區別09-14