Scope::__construct
(PHP 8.6+, True Async 1.0)
public function __construct()
새로운 루트 Scope를 생성합니다. 루트 스코프는 부모 스코프가 없으며 코루틴 수명 주기를 관리하기 위한 독립적인 단위로 사용됩니다.
예제
예제 #1 기본 사용법
<?php
use Async\Scope;
$scope = new Scope();
$scope->spawn(function() {
echo "Coroutine in a new scope\n";
});
$scope->awaitCompletion();
예제 #2 여러 개의 독립적인 스코프 생성
<?php
use Async\Scope;
$scopeA = new Scope();
$scopeB = new Scope();
$scopeA->spawn(function() {
echo "Task A\n";
});
$scopeB->spawn(function() {
echo "Task B\n";
});
// 하나의 스코프를 취소해도 다른 스코프에 영향을 주지 않습니다
$scopeA->cancel();
// $scopeB는 계속 실행됩니다
$scopeB->awaitCompletion();
참고
- Scope::inherit — 자식 Scope 생성
- Scope::spawn — 스코프에서 코루틴 생성