使用多程序, 子程序結束以後, 核心會負責**資源
使用多程序, 子程序異常退出不會導致整個程序thread退出. 父程序還有機會重建流程.
乙個常駐主程序, 只負責任務分發, 邏輯更清楚.
多程序方式更加穩定,另外利用程序間通訊(ipc)也可以實現資料共享。
共享記憶體,這種方式和執行緒間讀寫變數是一樣的,需要加鎖,會有同步、死鎖問題。
訊息佇列,可以採用多個子程序搶佇列模式,效能很好
執行緒是在同乙個程序內的,可以共享記憶體變數實現執行緒間通訊
執行緒比程序更輕量級,開很大量程序會比執行緒消耗更多系統資源
多執行緒也存在一些問題:
執行緒讀寫變數存在同步問題,需要加鎖
鎖的粒度過大存在效能問題,可能會導致只有1個執行緒在執行,其他執行緒都在等待鎖
同時使用多個鎖,邏輯複雜,一旦某個鎖沒被正確釋放,可能會發生執行緒死鎖
某個執行緒發生致命錯誤會導致整個程序崩潰
程序 執行緒 多程序 多執行緒的優缺點
ibm有個傢伙做了個測試,發現切換執行緒context的時候,windows比linux快一倍多。進出最快的鎖 windows2k的 critical section和linux的pthread mutex windows比linux的要快五倍左右。當然這並不是說linux不好,而且在經過實際程式設...
多程序與多執行緒區別 優缺點(Python)
在linux系統下,使用os.fork 呼叫一次,返回兩次,作業系統自動把當前程序 父程序 複製了乙份 子程序 然後分別在父程序和子程序內返回。子程序永遠返回0,父程序返回子程序的id。經過這樣做,父程序就能fork出很多子程序,並可以記錄下子程序的id號了,子程序可以通過getppid 來獲取父程...
程序 執行緒 多程序 多執行緒之間的差異以及優缺點
ibm有個傢伙做了個測試,發現切換執行緒context的時候,windows比linux快一倍多。進出最快的鎖 windows2k的 critical section和linux的pthread mutex windows比linux的要快五倍左右。當然這並不是說linux不好,而且在經過實際程式設...