Swoole4 协程调度

4.0协程实现中,主协程即为Reactor协程,负责整个EventLoop的运行。主协程实现事件监听,在IO事件完成后唤醒其他工作协程。

协程挂起

在工作协程中执行一些IO操作时,底层会将IO事件注册到EventLoop,并让出执行权。

  • 嵌套创建的非初代协程,会逐个让出到父协程,直到回到主协程
  • 在主协程上创建的初代协程,会立即回到主协程
  • 主协程的Reactor会继续处理IO事件、Wait监听新事件(epoll_wait

初代协程是在EventLoop内直接创建的协程,例如onReceive回调方法中的内置协程就是初代协程

协程恢复

当主协程的Reactor接收到新的IO事件,底层会挂起主协程,并恢复IO事件对应的工作协程。该工作协程挂起或退出时,会再次回到主协程。

评论