使用多程序, 子程序結束以後, 核心會負責**資源
使用多程序,子程序異常退出不會導致整個程序thread退出, 父程序還有機會重建流程。
乙個常駐主程序, 只負責任務分發, 邏輯更清楚.
多程序方式更加穩定,另外利用程序間通訊(ipc)也可以實現資料共享。
共享記憶體,這種方式和執行緒間讀寫變數是一樣的,需要加鎖,會有同步、死鎖問題。
訊息佇列,可以採用多個子程序搶佇列模式,效能很好
多執行緒執行緒是在同乙個程序內的,可以共享記憶體變數實現執行緒間通訊
執行緒比程序更輕量級,開很大量程序會比執行緒消耗更多系統資源
多執行緒也存在一些問題:
執行緒讀寫變數存在同步問題,需要加鎖
鎖的粒度過大存在效能問題,可能會導致只有1個執行緒在執行,其他執行緒都在等待鎖
同時使用多個鎖,邏輯複雜,一旦某個鎖沒被正確釋放,可能會發生執行緒死鎖
某個執行緒發生致命錯誤會導致整個程序崩潰
PHP 多執行緒 多程序
多執行緒 php其實並不支援多執行緒,只是通過一些擴充套件或者socket方式偽裝成多執行緒,實質不是的。在php 5.3 以上版本,使用 pthreads php擴充套件,可以使php真正地支援多執行緒 或者使用 fsockopen stream socket client 方法,客戶端開啟多個s...
多程序和多執行緒
嵌入式linux中文站,關於多程序和多執行緒,教科書上最經典的一句話是 程序是資源分配的最小單位,執行緒是cpu排程的最小單位 這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有那麼簡單了,選的不好,會讓你深受其害。經常在網路上看到有xdjm問 多程序好還是多執行緒好?linux下...
多執行緒和多程序
首先說什麼是程序,載入記憶體中執行的程式,它就是乙個程序,而這個程式中執行的某個子任務就是乙個執行緒,程式包含了執行緒。程序對於執行緒是唯一的,而乙個程序可以有多個執行緒。程式執行的時候每隔一定時間在多執行緒之間執行,比如第乙個執行緒執行到0.01秒,馬上暫停跳到下乙個執行緒開始執行,又執行到0.0...