A classe parallel\Future
(0.8.0)
Futures
Um Future representa o valor de retorno ou exceção não detectada de uma tarefa e expõe uma API para cancelamento.
Example #1 Exemplo mostrando Future como valor de retorno
<?php
$runtime = new \parallel\Runtime;
$future = $runtime->run(function(){
return "Mundo";
});
printf("Olá %s\n", $future->value());
?>
O exemplo acima produzirá algo semelhante a:
Olá Mundo
O comportamento de um future também permite que ele seja usado como um simples ponto de sincronização mesmo quando a tarefa não retorna um valor explicitamente.
Example #2 Exemplo mostrando Future como ponto de sincronização
<?php
$runtime = new \parallel\Runtime;
$future = $runtime->run(function(){
echo "no filho ";
for ($i = 0; $i < 500; $i++) {
if ($i % 10 == 0) {
echo ".";
}
}
echo " deixando filho";
});
$future->value();
echo "\npai continua\n";
?>
O exemplo acima produzirá algo semelhante a:
no filho .................................................. deixando filho pai continua
Table of Contents
- parallel\Future::cancel — Cancellation
- parallel\Future::cancelled — State Detection
- parallel\Future::done — State Detection
- parallel\Future::value — Resolution