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
"in child ";
for (
$i = 0; $i < 500; $i++) {
if (
$i % 10 == 0) {
echo
".";
}
}
echo
" leaving child";
});

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

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

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

Synopsis de la classe

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

Sommaire