# La classe parallel\Future

(0.8.0)

## Futures

Un Future représente la valeur de retour ou l'exception non attrapée d'une tâche, et expose une API pour l'annulation.

Exemple #1 Exemple montrant Future comme valeur de retour

    <?php
    $runtime = new \parallel\Runtime;
    $future  = $runtime->run(function(){
        return "World";
    });
    printf("Hello %s\n", $future->value());
    ?>

Résultat de l'exemple ci-dessus est similaire à :

    Hello World

Le comportement d'un Future permet également de l'utiliser comme un simple point de synchronisation même si la tâche ne retourne pas explicitement de valeur.

Exemple #2 Exemple montrant Future comme point de synchronisation

    <?php
    $runtime = new \parallel\Runtime;
    $future  = $runtime->run(function(){
        echo "dans l'enfant ";
        for ($i = 0; $i < 500; $i++) {
            if ($i % 10 == 0) {
                echo ".";
            }
        }
        echo " sortie de l'enfant";
    });

    $future->value();
    echo "\nle parent continue\n";
    ?>

Résultat de l'exemple ci-dessus est similaire à :

    dans l'enfant .................................................. sortie de l'enfant
    le parent continue

## Synopsis de la classe

final class parallel\Future {
/* Résolution */
public function value(): mixed
/* États */
public function cancelled(): bool
public function done(): bool
/* Annulation */
public function cancel(): bool
}

## Sommaire

- parallel\Future::cancel — Annulation
- parallel\Future::cancelled — Détection d'état
- parallel\Future::done — Détection d'état
- parallel\Future::value — Résolution

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