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

## Содержание

- parallel\Future::cancel — Прекращение
- parallel\Future::cancelled — Определение состояния
- parallel\Future::done — Определение состояния
- parallel\Future::value — Разрешение

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open