PHP 多進程和多線程的優缺點
多進程
1.使用多進程, 子進程結束以后, 內核會負責回收資源
2.使用多進程, 子進程異常退出不會導致整個進程Thread退出. 父進程還有機會重建流程.
3.一個常駐主進程, 只負責任務分發, 邏輯更清楚.
4.多進程方式更加穩定,另外利用進程間通信(IPC)也可以實現數據共享。
5.共享內存,這種方式和線程間讀寫變量是一樣的,需要加鎖,會有同步、死鎖問題。
6.消息隊列,可以采用多個子進程搶隊列模式,性能很好
多線程
1.線程是在同一個進程內的,可以共享內存變量實現線程間通信
2.線程比進程更輕量級,開很大量進程會比線程消耗更多系統資源
3.多線程也存在一些問題:
4.線程讀寫變量存在同步問題,需要加鎖
5.鎖的粒度過大存在性能問題,可能會導致只有1個線程在運行,其他線程都在等待鎖
6.同時使用多個鎖,邏輯復雜,一旦某個鎖沒被正確釋放,可能會發生線程死鎖
7.某個線程發生致命錯誤會導致整個進程崩潰
以上是文章全部內容,有需要學習交流的友人請加入交流群的咱們一起,有問題一起交流,一起進步!前提是你是學技術的。感謝閱讀!