摘要:在禁止場(chǎng)景中使用協(xié)程會(huì)出現(xiàn)各種莫名其妙的問(wèn)題發(fā)生。限制了協(xié)程的應(yīng)用范圍。新版本基于匯編代碼實(shí)現(xiàn)了全新的協(xié)程內(nèi)核。實(shí)現(xiàn)了對(duì)所有語(yǔ)法的支持。穩(wěn)定性和健壯性均已達(dá)到工業(yè)級(jí)的水準(zhǔn)。完全可用于大型項(xiàng)目的生產(chǎn)環(huán)境中。
Swoole雖然在2016年就支持了協(xié)程特性,但由于底層是基于setjmp/longjmp實(shí)現(xiàn)的stackless方案。因此在某些場(chǎng)景下,如call_user_func、array_map、__destruct中無(wú)法使用協(xié)程。大型應(yīng)用程序中邏輯非常復(fù)雜,多人協(xié)作的團(tuán)隊(duì)中,開(kāi)發(fā)者很容易踩到坑。在禁止場(chǎng)景中使用協(xié)程API會(huì)出現(xiàn)各種莫名其妙的問(wèn)題發(fā)生。限制了協(xié)程的應(yīng)用范圍。
新版本4.0基于boost.context 1.60匯編代碼實(shí)現(xiàn)了全新的協(xié)程內(nèi)核。在保存PHP函數(shù)調(diào)用棧的基礎(chǔ)上,增加了C棧的上下文存儲(chǔ)。實(shí)現(xiàn)了對(duì)所有PHP語(yǔ)法的支持。現(xiàn)在在任意PHP的函數(shù),包括call_user_func、反射、魔術(shù)方法、array_map中均可使用協(xié)程。
現(xiàn)在可以在PHP代碼中任意位置使用協(xié)程,開(kāi)發(fā)者不再需要擔(dān)心使用場(chǎng)景問(wèn)題。4.0版本我們與SwooleDistributed/Swoft/EasySwoole等框架作者進(jìn)行了緊密合作,在大量項(xiàng)目中進(jìn)行了灰度試用。穩(wěn)定性和健壯性均已達(dá)到工業(yè)級(jí)的水準(zhǔn)。完全可用于大型項(xiàng)目的生產(chǎn)環(huán)境中。
go(function() { array_map("test", array("func start ")); echo "co end "; }); function test($p) { echo $p; co::sleep(1); echo "func end "; }
4.0分支使用了C++11標(biāo)準(zhǔn),建議使用gcc-4.8或更高版本。全局變量隔離
新版本中底層對(duì)全局變量進(jìn)行了隔離,現(xiàn)在可以使用SwooleProcess創(chuàng)建多個(gè)SwooleServer實(shí)例了。
for ($i = 0; $i < 2; $i++) { $p = new swoole_process(function () use ($i) { $port = 9501 + $i; $http = new swoole_http_server("127.0.0.1", $port); $http->on("start", function ($server) use ($port) { echo "Swoole http server is started at http://127.0.0.1:{$port} "; }); $http->on("request", function ($request, $response) { $response->header("Content-Type", "text/plain"); $response->end("Hello World "); }); $http->start(); }, false, false); $p->start(); }其他更新
修復(fù)http2服務(wù)器無(wú)法向Chrome瀏覽器客戶端發(fā)送超過(guò)16K數(shù)據(jù)的問(wèn)題
修復(fù)BASE模式下Task進(jìn)程無(wú)法重啟的問(wèn)題
增加Channel->peek方法,用于窺視數(shù)據(jù)
修復(fù)Server->pause/resume在SWOOLE_PROCESS下無(wú)法使用的問(wèn)題
移除Linux AIO,現(xiàn)在無(wú)論如何設(shè)置都使用線程池實(shí)現(xiàn)異步文件IO
支持MySQL存儲(chǔ)過(guò)程
下載 4.0GITHUB:https://github.com/swoole/swo...
開(kāi)源中國(guó):https://gitee.com/swoole/swoo...
PECL:https://pecl.php.net/package/...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28821.html