搜尋
首頁php框架Swooleswoole如何實現協程

swoole如何實現協程

Dec 07, 2019 pm 02:11 PM
swoole

Swoole在2.0開始內建協程(Coroutine)的能力,提供了具備協程能力IO介面(統一在命名空間Swoole\Coroutine\*)。

開啟協程時請在編譯時加入--enable-coroutine編譯選項。

swoole如何實現協程

協程可以理解為純粹使用者狀態的線程,其透過協作而不是搶佔來進行切換。相對於進程或線程,協程所有的操作都可以在使用者態完成,創建和切換的消耗更低。 (推薦學習: swoole視訊教學

Swoole可以為每個請求建立對應的協程,根據IO的狀態來合理的調度協程,這會帶來了以下優勢:

開發者可以無感知的用同步的程式碼編寫方式達到非同步IO的效果和效能,避免了傳統非同步回呼所帶來的離散的程式碼邏輯和陷入多層回呼中導致程式碼無法維護。

同時由於swoole是在底層封裝了協程,所以對比傳統的php層協程框架,開發者不需要使用yield關鍵字來標識一個協程IO操作,所以不再需要對yield的語意進行深入理解以及對每一層的呼叫都修改為yield,這極大的提高了開發效率。

協程API目前針對了TCP,UDP等主流協定client的封裝,包括:

UDP

##TCP

HTTP

Mysql

Redis

可以滿足大部分開發者的需求。對於私有協議,開發者可以使用協程的TCP或UDP介面去方便的封裝。

啟用

Prerequisite:

PHP版本要求:>= 5.5,包括5.5、5.6、7.0、7.1

#基於swoole_server或swoole_http_server進行開發,目前只支援在onRequet, onReceive, onConnect等事件回呼函數中使用協程。

swoole_server和swoole_http_server將為每個請求建立對應的協程,開發者可以在onRequet、onReceive、onConnect 事件回呼中使用協程客戶端。

以上是swoole如何實現協程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。