函式名: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() 方法來恢復協程的執行。
- 協程的執行順序可以由程式設計師控制,可以在任意時刻暫停和恢復協程的執行。