五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

Csp 并發模式

使用 子協程(go) + 通道(channel) 實現 Csp 并發模式并發執行。

當我們需要并發執行某些不相干的請求,并得到結果的時候,例如:

$sql1->exec();
$sql2->exec();
$sql2->exec();

在以上的代碼中,我們沒辦法最大的節約時間,因為 sql 語句都是順序執行的,因此我們引入了 Csp 并發編程的概念。

示例代碼

<?php
go(function () {
    $channel = new \Swoole\Coroutine\Channel();
    go(function () use ($channel) {
        // 模擬執行sql
        \co::sleep(0.1);
        $channel->push(1);
    });
    go(function () use ($channel) {
        // 模擬執行sql
        \co::sleep(0.1);
        $channel->push(2);
    });
    go(function () use ($channel) {
        // 模擬執行sql
        \co::sleep(0.1);
        $channel->push(3);
    });

    $i = 3;
    while ($i--) {
        var_dump($channel->pop());
    }
});

當然,在以上的代碼中,我們沒有充分地考慮超時等情況

進一步封裝

<?php
go(function () {
    $csp = new \EasySwoole\Component\Csp();
    $csp->add('t1', function () {
        \co::sleep(0.1);
        return 't1 result';
    });
    $csp->add('t2', function () {
        \co::sleep(0.1);
        return 't2 result';
    });

    var_dump($csp->exec());
});

exec 方法提供了一個默認參數:超時時間(默認為 5s),當調用 $csp->exec() 后,最長等待 5s 左右會返回結果。如果你在 t2 函數中 co::sleep(6),那么 5s 后,返回的數據中不會包含 t2 函數的返回數據。

主站蜘蛛池模板: 久久精品一区二区三区不卡牛牛 | 国产精品综合视频 | 青草青草视频2免费观看 | 日韩不卡视频在线 | 国产农村精品一级毛片视频 | 国产性大片免费播放网站 | 日本羞羞动漫 | 国产一区二区中文字幕 | 久久99精品视免费看 | 欧美激情综合 | 久久有码中文字幕 | 欧美成人久久久免费播放 | 成人小视频网 | 男人的天堂久久精品激情 | 五月天激激婷婷大综合丁香 | 国产福利免费视频 | 日韩中文字幕一在线 | 久久国产精品亚洲一区二区 | 高清性色生活片欧美在线 | 久久亚洲精品视频 | 亚洲欧美精品中字久久99 | 国产精品久久久久久福利 | 国产va免费精品 | www.日本高清 | 四色婷婷婷婷色婷婷开心网 | 国产一级视频久久 | 涩涩电影网站 | 久久99精品久久久久久清纯直播 | 99re精彩视频 | 久久久久久国产精品mv | 国产羞羞事1000部在线观看 | 日日摸夜夜添夜夜添日韩 | di4se| 久久国产自偷自偷免 | 欧美一区二区三区精品 | 国产精品久久福利网站 | 国产精品久久久久久久午夜片 | 爱婷婷视频在线观看 | 久久精品人人爽人人爽快 | 日本不卡视频网站 | 漂亮的保姆4-bd国语在线观看 |