小編給大家分享一下swoole是不是沒有多線程,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、哈密ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的哈密網(wǎng)站制作公司
由于PHP語言不支持多線程,因此Swoole使用多進(jìn)程模式。在多進(jìn)程模式下存在進(jìn)程內(nèi)存隔離,在工作進(jìn)程內(nèi)修改global全局變量和超全局變量時,在其他進(jìn)程是無效的。
Reactor線程
Swoole\Server的主進(jìn)程是一個多線程的程序。其中有一組很重要的線程,稱之為Reactor線程。它就是真正處理TCP連接,收發(fā)數(shù)據(jù)的線程。
Swoole的主線程在Accept新的連接后,會將這個連接分配給一個固定的Reactor線程,并由這個線程負(fù)責(zé)監(jiān)聽此socket。在socket可讀時讀取數(shù)據(jù),并進(jìn)行協(xié)議解析,將請求投遞到Worker進(jìn)程。在socket可寫時將數(shù)據(jù)發(fā)送給TCP客戶端。
分配的計算方式是fd % serv->reactor_num
看完了這篇文章,相信你對“swoole是不是沒有多線程”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!