亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

workerman和swoole有哪些區別

發布時間:2022-02-10 14:28:23 來源:億速云 閱讀:225 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關workerman和swoole有哪些區別的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

區別:1、swoole是使用C語言實現的socket通信框架,而workerman是使用純php實現的socket框架;2、workerman中socket是由worker進程負責的,swoole則是由主進程中的reactor線程來負責的。

本教程操作環境:Windows10系統、Swoole4版、DELL G3電腦

workerman和swoole有哪些區別

workerman和swoole在現階段很受爭議,有時間你得認識認識,不然你就不是混php圈子的。swoole是使用C語言實現的socket通信框架,workerman則是使用純php實現的socket框架,二者進程模型上也存在很多的不同。

master進程

這個進程比較復雜,也是我認為最核心的進程,這是一個包含多線程的進程,分別是一個主線程和n個reactor線程(數量可以配置)。

其中,主線程用于accept新的連接,然后評估一下每個reactor線程負責維護的連接數,然后分配給數量最少的那個reactor線程,最大程度保證每個reactor線程的負載量是均衡的。

本質上講,一旦一個socket可讀或者可寫了,就由reactor線程發送給worker進程或者發送會客戶端。除此之外,主線程還負責對所有信號的接管,避免reactor線程收到信號的打擾中斷。

說的洋氣點兒就是:master進程負責了連接的accept、托管、socket的可讀可寫(數據的發送和接受),本質上講,master進程負責了IO。還需要注意一點兒的是reactor線程是徹底的全異步非阻塞工作方式。

manager進程

manager進程是worker進程和taskworker進程的媽,說的洋氣點兒就是manager進程fork出來了worker進程和taskworker進程,生出來了就得管,所以,manager進程得負責對worker進程和taskworker進程的撫養義務,具體包括監控它們的狀態、當它們意外掛了后重新拉起一個新的進程(避免了僵尸進程)、平滑重啟(就是傳說中的reload)。

worker進程

worker進程是manager進程fork出來的,這個進程說白了就是搬磚干活(官方文檔中屢次提到的業務代碼),其實就是平時碼的那些curd業務邏輯代碼,懂了吧?只不過worker進程比較diao的是,這個進程可以用異步方式去工作,也可以用同步方式去工作。如果聽不懂什么意思,那就先背過,先混個臉熟再說。

taskworker進程

taskworker進程(后文中稱tasker進程)實際本質上也是worker進程,只不過是一種特殊的worker進程。如果你的worker進程中存在一些耗時耗力的操作,那么可以先拋給tasker進程,自己先去干別的,等tasker干完了,再由worker進程取回,非常diao。但是tasker進程只能工作在同步方式下,并不能使用異步。這就是為什么tasker進程不可以使用定時器,而worker進程可以使用定時器的原因。

簡單總結混在一起說下這幾種進程之間是怎么搭配起來干活的。見說來說,就是master進程就是接活兒的銷售,但是具體干活則由worker進程來做,如果worker進程感覺到某些流程太繁忙復雜就可以讓tasker進程來做。而manager進程就是后勤worker進程和takser進程的人力資源保障部,負責他們的生死存亡和吃喝拉撒。

workerman

而workerman的進程模型相對就要簡單很多了,首先相對于swoole來說,workerman沒有swoole中的reator線程,其次workerman沒有用于處理普通業務的worker進程以及tasker進程。而workerman的話,socket是由worker進程負責的,swoole中則是由主進程中的reactor線程來負責的。而swoole在接受到數據后,可以通過自己的worker進程來處理業務(有點兒類似于fpm進程)。

workerman是一個高性能的PHP socket 服務器框架,workerman基于PHP多進程以及libevent事件輪詢庫,PHP開發者只要實現一兩個接口,便可以開發出自己的網絡應用,例如Rpc服務、聊天室服務器、手機游戲服務器等。

workerman的目標是讓PHP開發者更容易的開發出基于socket的高性能的應用服務,而不用去了解PHP socket以及PHP多進程細節。 workerman本身是一個PHP多進程服務器框架,具有PHP進程管理以及socket通信的模塊,所以不依賴php-fpm、nginx或者apache等這些容器便可以獨立運行

感謝各位的閱讀!關于“workerman和swoole有哪些區別”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

南部县| 澜沧| 阳春市| 剑川县| 宣汉县| 潍坊市| 大同县| 澜沧| 海盐县| 师宗县| 大连市| 宣汉县| 博湖县| 宝清县| 武鸣县| 乌鲁木齐县| 盘山县| 大余县| 铜鼓县| 临海市| 吉水县| 承德市| 新巴尔虎左旗| 万年县| 五河县| 梨树县| 大同县| 贺兰县| 中江县| 金门县| 托克逊县| 察隅县| 南平市| 达日县| 孝昌县| 榆树市| 巫溪县| 景宁| 天长市| 梓潼县| 平泉县|