5.3PHP语言的纤程(Fiber)

纤程可以在调用堆栈中的任何位置被挂起,在纤程内暂停执行,直到稍后恢复。

纤程一旦被暂停,可以使用 Fiber::resume() 传递任意值、或者使用 Fiber::throw() 向纤程抛出一个异常以恢复运行。这个值或者异常将会在 Fiber::suspend() 中被返回(抛出)。

<?php
$fiber = new Fiber(function (): void {
   $value = Fiber::suspend('fiber');
   echo "Value used to resume fiber: ", $value, PHP_EOL;
});

$value = $fiber->start();

echo "Value from fiber suspending: ", $value, PHP_EOL;

$fiber->resume('test');
?>

以上例程会输出:

Value from fiber suspending: fiber
Value used to resume fiber: test

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/phplang/11248.html

(2)
上一篇 2021年5月2日 21:44
下一篇 2021年5月3日 02:33

相关推荐

  • 5.2PHP语言的生成器(Generator)

    生成器提供了一种更容易的方法来实现简单的对象迭代。 相比较定义类实现 Iterator 接口的方式,相同的是调用生成器函数时会返回一个内部的 Generator 类的对象,该 Generator 类实现了 Iterator 接口。不同的是,生成器性能…

    PHP语言教程 2021年5月2日
    02550
  • 3.5PHP语言的注解(Attribute)

    注解声明 注解声明总是以 #[ 开头,以 ] 结尾来包围,方括号内部则是一个或以逗号包含的多个注解。 注解的本质是类。 调用注解 注解的参数是非必须的。如果有参数,则以常见的括号()包围。注解的参数可以是字面值或者常量表达式。它同时接受位置参数和命名参数两种语法。

    PHP语言教程 2021年3月5日
    01860
  • 1.3PHP语言的标识符(Identifier)

    标识符 任意长度,由任何字母、数字、下划线组成; 不能以数字开头; 区分大小写,函数名称例外; 命名约定

    PHP语言教程 2021年1月3日
    03430

发表评论

登录后才能评论