中文在线一区二区_欧美在线综合_久久久久久综合_欧美一区二区三区视频_国产免费看_国产福利精品一区

Csp 并發(fā)模式

使用 子協(xié)程(go) + 通道(channel) 實現(xiàn) Csp 并發(fā)模式并發(fā)執(zhí)行。

當我們需要并發(fā)執(zhí)行某些不相干的請求,并得到結(jié)果的時候,例如:

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

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

示例代碼

<?php
go(function () {
    $channel = new \Swoole\Coroutine\Channel();
    go(function () use ($channel) {
        // 模擬執(zhí)行sql
        \co::sleep(0.1);
        $channel->push(1);
    });
    go(function () use ($channel) {
        // 模擬執(zhí)行sql
        \co::sleep(0.1);
        $channel->push(2);
    });
    go(function () use ($channel) {
        // 模擬執(zhí)行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 方法提供了一個默認參數(shù):超時時間(默認為 5s),當調(diào)用 $csp->exec() 后,最長等待 5s 左右會返回結(jié)果。如果你在 t2 函數(shù)中 co::sleep(6),那么 5s 后,返回的數(shù)據(jù)中不會包含 t2 函數(shù)的返回數(shù)據(jù)。

主站蜘蛛池模板: 成人高h视频 | 欧美一级久久 | 午夜精品久久久久久久久久久久 | 伦理午夜电影免费观看 | 成人午夜电影网 | 精品国产不卡一区二区三区 | 亚洲 精品 综合 精品 自拍 | 中文字幕不卡 | 91在线观看高清视频 | av不卡电影在线观看 | 久久国产一区 | 91在线你懂的 | 一区视频 | 色婷婷一区 | 成人精品一区二区三区 | 四虎影院网 | 亚洲香蕉视频 | 日本成人中文字幕 | 久久久一区二区三区 | 久草新在线| 在线一级片 | 91精品一久久香蕉国产线看观看新通道出现 | 高清视频一区二区三区 | 欧美久久久网站 | 久久精品99 | 自拍偷拍色 | 婷婷久久综合 | 久久久www成人免费无遮挡大片 | 精品国产子伦久久久久久小说 | 97精品超碰一区二区三区 | 另类综合在线 | 国产成人99久久亚洲综合精品 | 精品久久久久久久久久久 | 91精品国产日韩91久久久久久 | 不卡的一区二区 | 亚洲一区中文字幕在线观看 | 日韩欧美~中文字幕 | 激情网站免费 | 一区二区三区久久久 | 久久久久久久成人 | 99视频在线免费 |