PHP纤程

278 阅读1分钟

PHP8.1新增 适应场景好像没多少

基础

PHP 8.1

纤程(Fiber)表示一组有完整、可中断的功能。可以在调用栈中的任何位置被挂起,在纤程内暂停执行,直到稍后恢复

 <?php
 ​
 $fiber = new Fiber(function () : void {
     echo 1;
 ​
     $value = Fiber::suspend('inside'); // 挂起Fiber并向外部传值,值可以是任意类型
     echo "Value used to resume fiber: ", $value, PHP_EOL;
 });
 ​
 $value = $fiber->start();
 echo "Value from fiber supending: ", $value, PHP_EOL;
 ​
 $fiber->resume(2); // 方式一 唤起Fiber并传入任意值
 $fiber->throw(new \Exception("未定义值")); // 方式二 使用异常唤醒