php各版本特性(PHP8 - 纤程的使用)

wufei123 发布于 2023-10-03 阅读(864)

php电子书下载

概述php8(php8>=8.1.0) 中新增了纤程特性,官方文档地址如下:本文将讲解这个新特性的一些简单使用

php各版本特性(PHP8 - 纤程的使用)

基本概念摘自官方文档纤程(Fiber)表示一组有完整栈、可中断的功能纤程可源码以在调用堆栈中的任何位置被挂起,在纤程内暂停执行,直到稍后恢复纤程可以暂停整个执行堆栈,所以该函数的直接调用者不需要改变调用这个函数的方式。

你可以在调用堆栈的任意地方使用 Fiber::suspend源码()中断执行(也就是说,Fiber::suspend()的调用位置可以在一个深度嵌套的函数中,甚至可以不存在)与无栈的 Generator 不同,每一个 Fiber 拥有自己的调用栈,并允许在一个深度源码嵌套的函数调用中将它们暂停。

声明了中断(interruption)点的函数(即调用 Fiber::suspend())不需要改变自己的返回类型,不像使用 yield 一样需要返回一个 Generato源码r 实例纤程可以在任意函数调用中被暂停,包括那些在 PHP VM 中被调用的函数。

例如被用于 arraymap()的函数或者提供 Iterator 实例以被 foreach 调用的方法纤程一旦被暂停,源码可以使用 Fiber::resume()传递任意值、或者使用 Fiber::throw()向纤程抛出一个异常来恢复运行。

这个值或者异常将会在 Fiber::suspend()中被返回(抛出)基本使用

亲源码爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。