查詢

Fiber::start()函式—用法及示例

「 啟動一個協程 」


函式名:Fiber::start()

適用版本:PHP 8.1.0 及以上

函式說明:Fiber::start() 方法用於啟動一個協程。

用法:

  1. 建立一個協程物件:

    $fiber = new Fiber(function () {
        // 協程邏輯
    });
    
  2. 啟動協程:

    $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() 方法來恢復協程的執行。
  • 協程的執行順序可以由程式設計師控制,可以在任意時刻暫停和恢復協程的執行。
補充糾錯
上一個函式: Fiber::suspend()函式
下一個函式: Fiber::resume()函式
熱門PHP函式
分享連結