函数名:Fiber::start()
适用版本:PHP 8.1.0 及以上
函数说明:Fiber::start() 方法用于启动一个协程。
用法:
创建一个协程对象:
$fiber = new Fiber(function () { // 协程逻辑 });
启动协程:
$fiber->start();
示例:
$fiber = new Fiber(function () {
echo "Start fiber\n";
Fiber::yield(); // 暂停协程执行
echo "Resume fiber\n";
Fiber::yield(); // 暂停协程执行
echo "End fiber\n";
});
$fiber->start(); // 启动协程
echo "Main\n";
$fiber->resume(); // 恢复协程执行
echo "Main\n";
$fiber->resume(); // 恢复协程执行
输出结果:
Start fiber
Main
Resume fiber
Main
End fiber
注意事项:
- Fiber::start() 方法只能在协程上下文中调用,否则会抛出异常。
- 在协程中使用 Fiber::yield() 方法可以暂停协程的执行,并将控制权返回给调用者。
- 启动协程后,可以使用 Fiber::resume() 方法来恢复协程的执行。
- 协程的执行顺序可以由程序员控制,可以在任意时刻暂停和恢复协程的执行。