PHP線程安全問題

1,原因:進程是os資源分配的基本單位,每個進程都有獨立的內存空間,進程之間除了通過進程通信手段之外,無法直接訪問非自己的內存地址。而同一個進程的所有線程共享內存空間,,所以引入了線程安全的問題。

2,場景:PHP以CGI或者 FastCGI模式運行的話每個request都是獨立的進程,不存在線程安全的問題。但要是以sapi例如多線程apache模塊運行的話,就必須考慮線程安全的問題。

3,原理:PHP的TSAM幫你管理整個進程的內存分配,每個線程都必須通過TSAM,從內存池中申請空間,避免各線程之間的內存爭奪戰。

4,比較: NTS肯定比TS運行速度快。如果使用第三方擴展,最好安裝TS的php,以避免服務器掛掉,安全等問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章