Класс 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";
?>

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

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

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

finalclassparallel\Future {
publicvalue(): mixed
publiccancelled(): bool
publicdone(): bool
publiccancel(): bool
}

Содержание

To Top