关于Swoole协程容器

要使用协程的API,必须在协程容器中,那么怎么样才算创建一个协程容器呢?最外层go闭包内,或者\Co\Run()闭包内,都算创建了协程序容器

<?php

go(function(){ //此处用\Co\Run效果一样的

//在当前闭包内,就算协程环境了,一般情况下,根协程cid = 1

 for ($i=0;$i<10;$i++) {
      go(function(){
         //子协程环境
      })
 } 


 //此处必须等所有子协程环境执行完成
});


//当前位置不是协程环境, 代码运行到此处就结束了

 

 切记!!! 在协程环境中,一定不要使用sleep,否则全局或者静态变量存在脏读,无论你是否用了协程上下文管理器隔离。

当前协程co::sleep()之后只会影响当前协程,不会影响协程调度切换时间和其他协程的运行时间

协程内有嵌套,父协程必须等待所有子协程运行完毕,才能退出 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值