欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

swoole協(xié)程如何開(kāi)啟

小編給大家分享一下swoole協(xié)程如何開(kāi)啟,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,先為陽(yáng)西等服務(wù)建站,陽(yáng)西等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為陽(yáng)西企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

Swoole 2.0正式版發(fā)布了。2.0版本最大的更新是增加了對(duì)協(xié)程(Coroutine)的支持。正式版已同時(shí)支持PHP5和PHP7。

基于Swoole2.0協(xié)程PHP開(kāi)發(fā)者可以已同步的方式編寫代碼,底層自動(dòng)進(jìn)行協(xié)程調(diào)度,轉(zhuǎn)變?yōu)楫惒絀O。

解決了傳統(tǒng)異步編程嵌套回調(diào)的問(wèn)題。

與Node.js(ES6+)、Python等語(yǔ)言使用yield/generator、async/await的實(shí)現(xiàn)方式相比,Swoole協(xié)程無(wú)需修改代碼添加額外的關(guān)鍵詞。

與Go語(yǔ)言的goroutine相比,Swoole協(xié)程是內(nèi)置式的,應(yīng)用層代碼無(wú)需添加go關(guān)鍵詞啟動(dòng)協(xié)程,只需要使用封裝好的協(xié)程客戶端即可,使用更簡(jiǎn)單。另外Swoole協(xié)程的IO組件在底層內(nèi)置了超時(shí)機(jī)制,不需要使用復(fù)雜的select/chan/timer實(shí)現(xiàn)客戶端超時(shí)。

目前Swoole底層內(nèi)置的協(xié)程客戶端組件包括:udpclient、tcpclient、httpclient、redisclient、MySQLclient,基本涵蓋了開(kāi)發(fā)者常用的幾種通信協(xié)議。協(xié)程組件只能在服務(wù)器的onConnect、onRequest、onReceive、onMessage 回調(diào)函數(shù)中使用。

使用 swole 協(xié)程

如何使用協(xié)程:

使用 go()(\Swoole\Coroutine::create() 的簡(jiǎn)寫) 創(chuàng)建一個(gè)協(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)建一個(gè)協(xié)程

swoole server 中, 底層自動(dòng)在 onRequet, onReceive, onConnect 等事件回調(diào)之前自動(dòng)創(chuàng)建一個(gè)協(xié)程

開(kāi)啟 enable_coroutine 參數(shù)后的影響范圍: 主要還包括 Timer 定時(shí)器

使用 task_enable_coroutine 開(kāi)啟的協(xié)程版 Task 進(jìn)程, 會(huì)在 onTask 回調(diào)之前自動(dòng)創(chuàng)建一個(gè)協(xié)程

進(jìn)程和進(jìn)程池支持開(kāi)啟協(xié)程, 開(kāi)啟后創(chuàng)建的子進(jìn)程會(huì)自動(dòng)創(chuàng)建協(xié)程

// tcp/udp server, 可以在此基礎(chǔ)可封裝 rpc
$s = new \Swoole\Server();
// http server, 替代傳統(tǒng)的 fpm
$s = new \Swoole\Http\Server();
// 開(kāi)啟 http2 支持: https://wiki.swoole.com/wiki/page/326.html
$s = new \Swoole\Http\Server();
$s->set([
    'open_http2_protocol' => true,
]);
// 進(jìn)而可以實(shí)現(xiàn)基于 http2 的服務(wù), 比如 grpc
// websocket server
$s = new \Swoole\WebSocket\Server();

看完了這篇文章,相信你對(duì)“swoole協(xié)程如何開(kāi)啟”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

文章標(biāo)題:swoole協(xié)程如何開(kāi)啟
URL地址:http://chinadenli.net/article24/jijgce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃云服務(wù)器營(yíng)銷型網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)外貿(mào)建站服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)