黄p网站_在线看中文字幕_亚洲电影免费观看_成人激情视频_欧美成视频_中国av在线

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 函數的返回數據。

主站蜘蛛池模板: 99re在线视频 | 国家aaa的一级看片 操操操夜夜操 | 久久精品免费看 | 国内精品一区二区三区视频 | 一二三区视频 | 中文字幕加勒比 | 亚洲精品在 | 日韩在线播放视频 | 毛片一级 | 亚洲一区中文字幕在线观看 | 日本一区二区三区在线视频 | 久久在线视频 | 午夜一级片 | 亚洲一区二区三区免费 | 91在线精品一区二区 | 欧美一级在线观看 | 91在线视频免费观看 | 国产美女www爽爽爽免费视频 | 视频一区 中文字幕 | 久久全国免费视频 | 一级毛片免费在线 | 亚洲乱码一区二区三区在线观看 | 国产一区二区三区在线视频 | 成人午夜精品一区二区三区 | 精品无码久久久久久国产 | 91精品国产色综合久久不卡98 | 天堂va在线高清一区 | 亚洲精品美女久久 | 天久久| 欧美精品导航 | 久久精品久久久 | 国产激情在线看 | 国产精品成av人在线视午夜片 | 久久美女视频 | 亚洲欧美韩国 | 欧美一区精品 | 欧美精品一区二区三区四区在线 | 福利片在线观看 | 91精品国产美女在线观看 | 这里有精品视频 | 中文字幕 在线观看 |