Coroutine::resume

恢复某个协程,使其继续运行。

  1. function Swoole\Coroutine::resume(int $coroutineId);
  • 参数$coroutineId为要恢复的协程ID,在协程内可以使用Coroutine::getUid获取到协程的ID
  • 当前协程处于挂起状态时,另外的协程中可以使用resume再次唤醒当前协程

实例

  1. use Swoole\Coroutine as co;
  2. $id = go(function(){
  3. $id = co::getUid();
  4. echo "start coro $id\n";
  5. co::suspend();
  6. echo "resume coro $id @1\n";
  7. co::suspend();
  8. echo "resume coro $id @2\n";
  9. });
  10. echo "start to resume $id @1\n";
  11. co::resume($id);
  12. echo "start to resume $id @2\n";
  13. co::resume($id);
  14. echo "main\n";
  15. --EXPECT--
  16. start coro 1
  17. start to resume 1 @1
  18. resume coro 1 @1
  19. start to resume 1 @2
  20. resume coro 1 @2
  21. main