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());
?>

El resultado del ejemplo sería algo 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";
?>

El resultado del ejemplo sería algo similar a:

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

Sinopsis de la Clase

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

Tabla de contenidos