× 警告!旧版文档已经暂停维护,请查看新版文档。点击前往新版文档

Coroutine::yield

让出当前协程的执行权。

function Coroutine::yield();

此方法拥有另外一个别名:Coroutine::suspend()

必须与Coroutine::resume()方法成对使用。该协程yield以后,必须由其他外部协程resume,否则将会造成协程泄漏,被挂起的协程永远不会执行。

使用示例

use Co;

$cid = go(function () {
    echo "co 1 start\n";
    co::yield();
    echo "co 1 end\n";
});

go(function () use ($cid) {
    echo "co 2 start\n";
    co::sleep(0.5);
    co::resume($cid);
    echo "co 2 end\n";
});