Класс 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 function value(): mixed
/* Состояние */
public function cancelled(): bool
public function done(): bool
/* Отмена */
public function cancel(): bool
}

Содержание