(0.8.0)
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