php為什麼要設計成單線程語言?

作為宇宙最好的語言(哈哈),php為什麼要設計成單線程語言?背後有什麼原因?


nginx為什麼要設計成單線程的?

node.js為什麼要設計成單線程的?

Python、Ruby為什麼必須要GIL?


PHP
官方已經在PHP-FPM這些服務層面用C實現了多進程架構充分利用多核應對並發,所以PHP官方是不希望PHP開發者在PHP-FPM這些進程內執行多
線程,這會造成PHP-FPM的不穩定,線程安全檢查也會產生額外的開銷,所以PHP的多線程擴展pthreads的作者也只是建議在cli命令行下使
用.


1、PHP 從設計之初到流行起來都沒有出現明顯需要用多線程才能解決的需求。某些需要用到多線程的地方也有相應的解決方案和替代方案。

2、多線程並不總是比單線程優,多線程可能會引入其他問題。


多線程意味著除主線程外,其他線程都是非同步處理,有必要的情況下PHP是可以使用多線程的。但更多的應用還是以單線程為主,這樣一來就可以自上而下的去編輯/理解代碼中的業務邏輯了。


其實原因很簡單:出生早+場景單純.

如果我沒記錯的話PHP應該在94年就發布的.當時的網站還非常原始,美工和性能要求完全無法和今日相比,PHP的作者也僅僅是想寫一個方便自己更新博客的工具而已.

要有歷史同情心, 不然幾十年後又會有人問為什麼GO語言不支持量子計算特性


謝邀。

單線程和多線程是永恆的話題。在最初的應用場景,從開發者的角度,單線程最容易被理解和掌握,門檻低因此更容易廣泛的應用;

現在PHP多進程和多線程也是被廣泛應用的,因為開發者的平均水平已經遠高過當初。


php最開始用用於個人blog,沒有考慮其他,想到就去做.

《社交網路》里,當划船那倆雙胞胎兄弟還在深思熟慮、琢磨著到底該怎麼實現自己那激動人心的宏偉目標時,扎克伯格用兩星期的時間就真正把這個社交平台給實現了。


歷史遺留問題


走自己的路,讓別人無路可走。ps:咖啡語言好像要被google賣了。


推薦閱讀:

如何評價知乎幾乎所有PHP相關問題中都出現「PHP是世界上最好的語言」的無關回答的現象?
在日常的網頁開發中,apache的角色是什麼樣的?(如果並不需要將數據上載伺服器的話),為什麼一定要用
PHP初學者應該選擇哪個版本的ThinkPHP?
為什麼http請求要3次握手與4次揮手?
如何評價thinkphp5.0?

TAG:PHP | 多線程 | 單線程 |