您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關php單線程的案例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
單線程的進程,有一個特性就是順序執行,當遇到比較耗時的任務時,還未執行的任務就會處于等待狀態,一定要等到前面的任務完成了,才會往后執行。
PHP就是典型的單線程,它一定是順序執行的,前面不執行完,后面執行不了
當然,swoole除外
PHP 從設計之初到流行起來都沒有出現明顯需要用多線程才能解決的需求。某些需要用到多線程的地方也有相應的解決方案和替代方案。多線程并不總是比單線程優,多線程可能會引入其他問題(例如:兩個線程同時調用一個類里的同一個方法時,可能出現死鎖的情況)。
你可以這樣理解 對應一個客戶的一個頁面請求處理的php是單線程處理的, 這樣一來就可以自上而下的去編輯/理解代碼中的業務邏輯了, 但是 php 可以同時開很多線程來處理 很多用戶請求的同一個PHP , 所以 php 也可以看成是"多線程"的。
每個PHP文件的執行是單線程的,但是,服務器(apache/nigix/php-fpm)是多線程的。每次對某個PHP文件的訪問服務器都會創建一個新的進程/線程,用來執行對應的PHP文件。
也就是說對于一個請求來說PHP是單線程的,但是多個請求間是并發的。
其實一般寫 PHP 程序認為是單線程的就可以了。多個請求之間相互的關系就是,有些時候讀寫數據庫,文件,session等會加鎖,會導致后面的請求掛起等待前面的請求執行完才繼續。
至于協程,只能說是一種新的程序執行流程(舊的是順序,判斷,循環),本質是也是單線程的
所以準確的說php是單線程的,一定程度上也可以看成是“多線程”!!!
關于php單線程的案例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。