男女疯狂一边摸一边做羞羞视频|啊好深好硬快点用力别停动态图|亚洲一区无码中文字幕|特级无码毛片免费视频播放▽|久久狠狠躁免费观看|国内精品久久久久久网站

纖程

纖程概述

(PHP 8 >= 8.1.0)

纖程(Fiber)表示一組有完整棧、可中斷的功能。 纖程可以在調用堆棧中的任何位置被掛起,在纖程內暫停執行,直到稍后恢復。

纖程可以暫停整個(gè)執行堆棧,所以該函數的直接調用者不需要改變調用這個(gè)函數的方式。

你可以在調用堆棧的任意地方使用 Fiber::suspend() 中斷執行(也就是說(shuō),Fiber::suspend() 的調用位置可以在一個(gè)深度嵌套的函數中,甚至可以不存在)。

與無(wú)棧的 Generator 不同, 每一個(gè) Fiber 擁有自己的調用棧,并允許在一個(gè)深度前度的函數調用中將它們暫停。 聲明了中斷(interruption)點(diǎn)的函數(即調用 Fiber::suspend()) 不需要改變自己的返回類(lèi)型,不像使用 yield 一樣需要返回一個(gè) Generator 實(shí)例。

纖程可以在任意函數調用中被暫停,包括那些在 PHP VM 中被調用的函數。 例如被用于 array_map() 的函數或者提供 Iterator 實(shí)例以被 foreach 調用的方法。

纖程一旦被暫停,可以使用 Fiber::resume() 傳遞任意值、或者使用 Fiber::throw() 向纖程拋出一個(gè)異常以恢復運行。這個(gè)值或者異常將會(huì )在 Fiber::suspend() 中被返回(拋出)。

示例 #1 基礎用法

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

$value $fiber->start();

echo 
"Value from fiber suspending: "$valuePHP_EOL;

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

以上例程會(huì )輸出:

Value from fiber suspending: fiber
Value used to resume fiber: test
男女疯狂一边摸一边做羞羞视频|啊好深好硬快点用力别停动态图|亚洲一区无码中文字幕|特级无码毛片免费视频播放▽|久久狠狠躁免费观看|国内精品久久久久久网站