五月天激情丁香,国产精品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 函數的返回數據。

主站蜘蛛池模板: 人人看人人想人人爽 | av区无码字幕中文色 | 成人精品一区二区三区 | 久久久久国产一级毛片高清版 | 欧美不卡精品中文字幕日韩 | 真正免费一级毛片在线播放 | 九九这里只有精品视频 | 华人永久免费视频 | 午夜精品久久久久久久99热下载 | 国产成人久久精品 | 五月天六月婷婷开心激情 | 国产男女猛视频在线观看网站 | 国产精品久久久久影院嫩草 | 国产精品亚洲自在线播放页码 | 日韩午夜在线 | 一级毛片一级毛片 | 2021av在线视频| 国产永久在线 | 成人午夜看片 | 成人黄色小电影 | 日本黄页网 | 国产在线观看精品 | 久久男人精品 | 欧洲精品一区二区三区 | 成人伊人亚洲人综合网站222 | 国产最新自拍视频 | 斗破苍穹漫画扑飞在线观看免费版 | 第七色男人天堂 | 色青五月天 | 热99re久久精品香蕉 | 二区国产 | 久久99久久99基地看电影 | 精品国产一区二区三区久 | 奇米第四色在线视频 | 色综合久久精品中文字幕首页 | 日本不卡免费新一区二区三区 | 成人精品视频一区二区三区 | 免费一级毛片在线播放 | 五月婷婷在线观看 | 四虎国产精品影库永久免费 | 99精品免费视频 |