小編給大家分享一下swoole協(xié)程如何開啟,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,先為陽西等服務(wù)建站,陽西等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為陽西企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
Swoole 2.0正式版發(fā)布了。2.0版本最大的更新是增加了對協(xié)程(Coroutine)的支持。正式版已同時支持PHP5和PHP7。
基于Swoole2.0協(xié)程PHP開發(fā)者可以已同步的方式編寫代碼,底層自動進(jìn)行協(xié)程調(diào)度,轉(zhuǎn)變?yōu)楫惒絀O。
解決了傳統(tǒng)異步編程嵌套回調(diào)的問題。
與Node.js(ES6+)、Python等語言使用yield/generator、async/await的實現(xiàn)方式相比,Swoole協(xié)程無需修改代碼添加額外的關(guān)鍵詞。
與Go語言的goroutine相比,Swoole協(xié)程是內(nèi)置式的,應(yīng)用層代碼無需添加go關(guān)鍵詞啟動協(xié)程,只需要使用封裝好的協(xié)程客戶端即可,使用更簡單。另外Swoole協(xié)程的IO組件在底層內(nèi)置了超時機(jī)制,不需要使用復(fù)雜的select/chan/timer實現(xiàn)客戶端超時。
目前Swoole底層內(nèi)置的協(xié)程客戶端組件包括:udpclient、tcpclient、httpclient、redisclient、MySQLclient,基本涵蓋了開發(fā)者常用的幾種通信協(xié)議。協(xié)程組件只能在服務(wù)器的onConnect、onRequest、onReceive、onMessage 回調(diào)函數(shù)中使用。
使用 swole 協(xié)程
如何使用協(xié)程:
使用 go()(\Swoole\Coroutine::create() 的簡寫) 創(chuàng)建一個協(xié)程
在 go() 的回調(diào)函數(shù)中, 加入?yún)f(xié)程需要執(zhí)行的代碼, 注意是 非阻塞代碼
use Swoole\Coroutine as Co; // 常用的縮寫方式 go(function () { // 創(chuàng)建協(xié)程, 回調(diào)函數(shù)中寫需要在協(xié)程中執(zhí)行的代碼 echo "daydaygo"; Co::sleep(1); // 不能是阻塞代碼 });
協(xié)程
上文提到的, 使用 go() 創(chuàng)建一個協(xié)程
swoole server 中, 底層自動在 onRequet, onReceive, onConnect 等事件回調(diào)之前自動創(chuàng)建一個協(xié)程
開啟 enable_coroutine 參數(shù)后的影響范圍: 主要還包括 Timer 定時器
使用 task_enable_coroutine 開啟的協(xié)程版 Task 進(jìn)程, 會在 onTask 回調(diào)之前自動創(chuàng)建一個協(xié)程
進(jìn)程和進(jìn)程池支持開啟協(xié)程, 開啟后創(chuàng)建的子進(jìn)程會自動創(chuàng)建協(xié)程
// tcp/udp server, 可以在此基礎(chǔ)可封裝 rpc $s = new \Swoole\Server(); // http server, 替代傳統(tǒng)的 fpm $s = new \Swoole\Http\Server(); // 開啟 http2 支持: https://wiki.swoole.com/wiki/page/326.html $s = new \Swoole\Http\Server(); $s->set([ 'open_http2_protocol' => true, ]); // 進(jìn)而可以實現(xiàn)基于 http2 的服務(wù), 比如 grpc // websocket server $s = new \Swoole\WebSocket\Server();
看完了這篇文章,相信你對“swoole協(xié)程如何開啟”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
文章標(biāo)題:swoole協(xié)程如何開啟
URL地址:http://www.rwnh.cn/article24/jijgce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、云服務(wù)器、營銷型網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、外貿(mào)建站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)