栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

swoole协程

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

swoole协程

  • 单个协程版:

$n = 4;
go(function () use ($n) {    for ($i = 0; $i < $n; $i++) {
        Co::sleep(1);        
    };
});
花费 4.03s
⏎



  • 多协程版

$n = 4;for ($i = 0; $i < $n; $i++) {
    go(function () use ($i) {
        Co::sleep(1);      
    });
};
花费 1.02s
⏎


为什么时间有这么大的差异呢:

  • 普通写法, 会遇到 IO阻塞 导致的性能损失

  • 单协程: 尽管 IO阻塞 引发了协程调度, 但当前只有一个协程, 调度之后还是执行当前协程

  • 多协程: 真正发挥出了协程的优势, 遇到 IO阻塞 时发生调度, IO就绪时恢复运行


而 swoole 中的协程调度使用 单进程模型, 所有协程都是在当前进程中进行调度, 单进程的好处也很明显 。

不需要加锁,没有线程安全的问题



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/226819.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号