亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

Csp 并發(fā)模式

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

當(dāng)我們需要并發(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());
    }
});

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

進(jìn)一步封裝

<?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 方法提供了一個默認(rèn)參數(shù):超時時間(默認(rèn)為 5s),當(dāng)調(diào)用 $csp->exec() 后,最長等待 5s 左右會返回結(jié)果。如果你在 t2 函數(shù)中 co::sleep(6),那么 5s 后,返回的數(shù)據(jù)中不會包含 t2 函數(shù)的返回數(shù)據(jù)。

主站蜘蛛池模板: 日本欧美在线 | 飘雪在线高清观看视频动漫 | 一区二区三区免费 | 精品久久久久久久久久久久久 | 91精品啪在线观看国产 | 日韩一区二区三区在线免费观看 | 韩日a| 一区二区电影网 | 午夜一二三 | 国产精品自拍小视频 | 国产免费黄视频 | 日美韩一区二区三区 | 国产一级影片 | 99久久久国产精品免费观看 | 国产91在线高潮白浆在线观看 | 久久免费久久 | 精品国产欧美一区二区三区成人 | 欧美日韩成人在线观看 | 98国产精品午夜免费福利视频 | 三级大片免费看 | 欧美成人精品二区三区99精品 | 欧美日韩电影在线 | 成人一区二区三区在线观看 | 91精品国产综合久久小美女 | 免费三级电影网站 | 国产麻豆xxxvideo实拍 | 九九亚洲视频 | 91国内在线 | 亚欧美 | 日韩在线欧美在线 | 国产精品处女 | 夜夜爽夜夜操 | 亚洲婷婷一区 | 91精品国产高清91久 | 国产黄色片在线免费观看 | 成人午夜视频在线播放 | 亚洲精品成人区在线观看 | 91麻豆精品国产91久久久无限制版 | 久久国产精品免费一区二区三区 | 一级片视频免费看 | 欧美一区二区视频 |