您当前的位置: 首页 > 

苗先生的PHP记录

暂无认证

  • 0浏览

    0关注

    190博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Swoft2.x - 使用协程进行代码速度优化

苗先生的PHP记录 发布时间:2022-05-16 23:17:06 ,浏览量:0

原版:
 public function getList()
    {
        ## 这里使用了协程来对结果进行加速

        // 1. 用户展示数据(数据库查询)
        $list = [
            ["id"=>1,"user"=>"dyuaib1","img"=>""],
            ["id"=>2,"user"=>"dyuaib2","img"=>""],
            ["id"=>3,"user"=>"dyuaib3","img"=>""],
            ["id"=>4,"user"=>"dyuaib4","img"=>""],
            ["id"=>5,"user"=>"dyuaib5","img"=>""],
            ["id"=>6,"user"=>"dyuaib6","img"=>""],
        ];
        // 2. 做一些业务方面的操作(比如加入缓存 , 增加点击量等等) , 假设耗时3s
        \Swoole\Coroutine::sleep(3);
        echo date("Y-m-d H:i:s").PHP_EOL;
        \Swoole\Coroutine::sleep(3);
        echo date("Y-m-d H:i:s").PHP_EOL;


        return $list;
    }

结果如下

使用协程
    public function getList()
    {
        ## 这里使用了协程来对结果进行加速

        // 1. 用户展示数据(数据库查询)
        $list = [
            ["id"=>1,"user"=>"dyuaib1","img"=>""],
            ["id"=>2,"user"=>"dyuaib2","img"=>""],
            ["id"=>3,"user"=>"dyuaib3","img"=>""],
            ["id"=>4,"user"=>"dyuaib4","img"=>""],
            ["id"=>5,"user"=>"dyuaib5","img"=>""],
            ["id"=>6,"user"=>"dyuaib6","img"=>""],
        ];
        // 2. 做一些业务方面的操作(比如加入缓存 , 增加点击量等等) , 假设耗时3s
//        \Swoole\Coroutine::sleep(3);
//        echo date("Y-m-d H:i:s").PHP_EOL;
//        \Swoole\Coroutine::sleep(3);
//        echo date("Y-m-d H:i:s").PHP_EOL;

        // 3. 加入协程
        Co::create(function (){
            \Swoole\Coroutine::sleep(3);
            echo date("Y-m-d H:i:s").PHP_EOL;
        });
        Co::create(function (){
            \Swoole\Coroutine::sleep(3);
            echo date("Y-m-d H:i:s").PHP_EOL;
        });

        return $list;
    }

结果如下

 这样子可以看出来运行的流程 , 也可以在return 数据前做一个打印, 感兴趣的自行测试

关注
打赏
1665468453
查看更多评论
立即登录/注册

微信扫码登录

0.0407s