溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php單線程的案例分析

發(fā)布時間:2020-09-18 11:01:49 來源:億速云 閱讀:176 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關(guān)php單線程的案例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

 單線程的進程,有一個特性就是順序執(zhí)行,當遇到比較耗時的任務時,還未執(zhí)行的任務就會處于等待狀態(tài),一定要等到前面的任務完成了,才會往后執(zhí)行。

PHP就是典型的單線程,它一定是順序執(zhí)行的,前面不執(zhí)行完,后面執(zhí)行不了

當然,swoole除外  

PHP 從設(shè)計之初到流行起來都沒有出現(xiàn)明顯需要用多線程才能解決的需求。某些需要用到多線程的地方也有相應的解決方案和替代方案。多線程并不總是比單線程優(yōu),多線程可能會引入其他問題(例如:兩個線程同時調(diào)用一個類里的同一個方法時,可能出現(xiàn)死鎖的情況)。

你可以這樣理解 對應一個客戶的一個頁面請求處理的php是單線程處理的, 這樣一來就可以自上而下的去編輯/理解代碼中的業(yè)務邏輯了, 但是 php 可以同時開很多線程來處理 很多用戶請求的同一個PHP , 所以 php 也可以看成是"多線程"的。

每個PHP文件的執(zhí)行是單線程的,但是,服務器(apache/nigix/php-fpm)是多線程的。每次對某個PHP文件的訪問服務器都會創(chuàng)建一個新的進程/線程,用來執(zhí)行對應的PHP文件。

也就是說對于一個請求來說PHP是單線程的,但是多個請求間是并發(fā)的。

其實一般寫 PHP 程序認為是單線程的就可以了。多個請求之間相互的關(guān)系就是,有些時候讀寫數(shù)據(jù)庫,文件,session等會加鎖,會導致后面的請求掛起等待前面的請求執(zhí)行完才繼續(xù)。

至于協(xié)程,只能說是一種新的程序執(zhí)行流程(舊的是順序,判斷,循環(huán)),本質(zhì)是也是單線程的

所以準確的說php是單線程的,一定程度上也可以看成是“多線程”?。。?/p>

關(guān)于php單線程的案例分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI