# La clase parallel\Future

(0.8.0)

## Futures

Un Future representa el valor de retorno o la excepción no capturada de una tarea, y expone una API para la cancelación.

Ejemplo #1 Ejemplo mostrando Future como valor de retorno

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

Resultado del ejemplo anterior es similar a:

    Hello World

El comportamiento de un Future permite también su uso como un simple punto de sincronización incluso si la tarea no devuelve explícitamente un valor.

Ejemplo #2 Ejemplo mostrando Future como punto de sincronización

    <?php
    $runtime = new \parallel\Runtime;
    $future  = $runtime->run(function(){
        echo "in child ";
        for ($i = 0; $i < 500; $i++) {
            if ($i % 10 == 0) {
                echo ".";
            }
        }
        echo " leaving child";
    });

    $future->value();
    echo "\nparent continues\n";
    ?>

Resultado del ejemplo anterior es similar a:

    in child .................................................. leaving child
    parent continues

## Sinopsis de la Clase

final class parallel\Future {
/* Resolución */
public function value(): mixed
/* Estados */
public function cancelled(): bool
public function done(): bool
/* Cancelación */
public function cancel(): bool
}

## Tabla de contenidos

- parallel\Future::cancel — Cancelación
- parallel\Future::cancelled — Detección de estado
- parallel\Future::done — Detección de estado
- parallel\Future::value — Resolución

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