Класс parallel\Future
(0.8.0)
Futures
Future представляет возвращаемое значение или неперехваченное исключение из задачи и предоставляет API для отмены.
Пример #1 Пример, показывающий Future как возвращаемое значение
<?php $runtime = new \parallel\Runtime; $future = $runtime->run(function(){ return "World"; }); printf("Hello %s\n", $future->value()); ?>
Результатом выполнения данного примера будет что-то подобное:
Hello World
Поведение Future также позволяет использовать его в качестве простой точки синхронизации, даже если задача не возвращает значение явно.
Пример #2 Пример, показывающий Future как точку синхронизации
<?php $runtime = new \parallel\Runtime; $future = $runtime->run(function(){ echo "in child "; for ($i = 0; $i < 500; $i++) { if ($i % 10 == 0) { echo "."; } } echo " leaving child"; }); $future->value(); echo "\nparent continues\n"; ?>
Результатом выполнения данного примера будет что-то подобное:
in child .................................................. leaving child parent continues
Обзор классов
final parallel\Future { /* Разрешение */ public value ( void ) : mixed /* Состояние */ public cancelled ( void ) : bool public done ( void ) : bool /* Отмена */ public cancel ( void ) : bool }