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