亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Swoole 4.0 正式版,面向生產(chǎn)環(huán)境的 PHP 協(xié)程引擎

Zack / 1140人閱讀

摘要:在禁止場(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/resumeSWOOLE_PROCESS下無(wú)法使用的問(wèn)題

移除Linux AIO,現(xiàn)在無(wú)論如何設(shè)置都使用線程池實(shí)現(xiàn)異步文件IO

支持MySQL存儲(chǔ)過(guò)程

下載 4.0

GITHUB: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

Failed to recv the data from server completely (SIZE:0/8, REASON:closed)