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。