Fiber 是 PHP 8.1 引入的一個新特性,它允許開發者編寫協程(coroutine)代碼來實現高效的并發
在 PHP 中,Fiber 可以通過 Fiber
類來創建和管理。你可以將一個閉包函數傳遞給 Fiber
構造函數,然后使用 start()
、resume()
、throw()
等方法來控制 Fiber 的執行。
下面是一個簡單的示例:
<?php
$fiber = new Fiber(function () {
echo "Starting fiber\n";
$value = Fiber::suspend('Hello from fiber');
echo "Resumed with value: ", $value, "\n";
});
$fiber->start(); // 輸出 "Starting fiber"
$value = $fiber->resume('World'); // 輸出 "Resumed with value: World"
echo "Value from fiber: ", $value, "\n";
在這個示例中,我們創建了一個 Fiber,它首先輸出 “Starting fiber”,然后使用 Fiber::suspend()
方法暫停執行并返回 “Hello from fiber”。接下來,我們使用 resume()
方法恢復 Fiber 的執行,并傳遞 “World” 作為參數。最后,Fiber 輸出 “Resumed with value: World” 并返回結果。
需要注意的是,Fiber 只能在 PHP 8.1 及更高版本中使用。如果你使用的是較早的 PHP 版本,你需要升級到 PHP 8.1 或更高版本才能使用 Fiber。