1. 程式人生 > >網路程式設計中多執行緒與多程序的區別

網路程式設計中多執行緒與多程序的區別

1、程序:子程序是父程序的複製品。子程序獲得父程序資料空間、堆和棧的複製品。2,執行緒:相對與程序而言,執行緒是一個更加接近與執行體的概念,它可以與同進程的其他執行緒共享資料,但擁有自己的棧空間,擁有獨立的執行序列。兩者都可以提高程式的併發度,提高程式執行效率和響應時間。執行緒和程序在使用上各有優缺點:執行緒執行開銷小,但不利於資源管理和保護;而程序正相反。同時,執行緒適合於在SMP機器上執行,而程序則可以跨機器遷移。

根本區別就一點:用多程序每個程序有自己的地址空間(address space),執行緒則共享地址空間。所有其它區別都是由此而來的:1。速度:執行緒產生的速度快,執行緒間的通訊快、切換快等,因為他們在同一個地址空間內。

2。資源利用率:執行緒的資源利用率比較好也是因為他們在同一個地址空間內。3。同步問題:執行緒使用公共變數/記憶體時需要使用同步機制還是因為他們在同一個地址空間內。