parallel parallel\Future 클래스

(0.8.0)


Futures

Future는 작업에서 반환 값 또는 잡히지 않은 예외를 나타내며 취소를 위한 API를 노출합니다.

예제 #1 Future를 반환 값으로 보여주는 예

                  
<?php
$runtime = new \parallel\Runtime;
$future  = $runtime->run(function(){
    return "World";
});
printf("Hello %s\n", $future->value());
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

Hello World
                

미래의 동작은 태스크가 명시적으로 값을 반환하지 않는 경우에도 단순한 동기화 지점으로 사용될 수 있습니다.

예제 #2 Future를 동기화 지점으로 보여주는 예

                  
<?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";
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

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

클래스 개요

                  
final class parallel\Future {

  /* Resolution */
  public value(): mixed

  /* State */
  public cancelled(): bool
  public done(): bool

  /* Cancellation */
  public cancel(): bool
}
                  
                

목차