Класс parallel\Future

(0.8.0)

Объекты Future

Future представляет возвращаемое значение или неперехваченное исключение из задачи и предоставляет API для отмены.

Пример #1 Пример, показывающий Future как возвращаемое значение

<?php
$runtime
= new \parallel\Runtime;
$future = $runtime->run(function(){
return
"Мир";
});
printf("Привет, %s\n", $future->value());
?>

Вывод приведённого примера будет похож на:

Привет, Мир

Поведение Future также позволяет использовать его в качестве простой точки синхронизации, даже если задача не возвращает значение явно.

Пример #2 Пример, показывающий Future как точку синхронизации

<?php
$runtime
= new \parallel\Runtime;
$future = $runtime->run(function(){
echo
"в дочернем потоке ";
for (
$i = 0; $i < 500; $i++) {
if (
$i % 10 == 0) {
echo
".";
}
}
echo
" выход из дочернего потока";
});

$future->value();
echo
"\nродительский поток продолжает работать\n";
?>

Вывод приведённого примера будет похож на:

в дочернем потоке .................................................. выход из дочернего потока
родительский поток продолжает работать

Обзор классов

final class parallel\Future {
/* Разрешение */
public value(): mixed
/* Состояние */
public cancelled(): bool
public done(): bool
/* Отмена */
public cancel(): bool
}

Содержание