Класс 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
}