TaskGroup::__construct
(PHP 8.6+, True Async 1.0)
public TaskGroup::__construct(?int $concurrency = null, ?Async\Scope $scope = null)
새로운 태스크 그룹을 생성합니다.
매개변수
- concurrency
- 동시에 실행되는 코루틴의 최대 수입니다.
null— 제한 없음, 모든 태스크가 즉시 시작됩니다. 제한에 도달하면 새 태스크는 대기열에 배치되고 슬롯이 사용 가능해지면 자동으로 시작됩니다. - scope
- 부모 스코프입니다. TaskGroup은 코루틴을 위한 자식 스코프를 생성합니다.
null— 현재 스코프를 상속합니다.
예제
예제 #1 제한 없이
<?php
use Async\TaskGroup;
$group = new TaskGroup();
$group->spawn(fn() => "task 1"); // 즉시 시작
$group->spawn(fn() => "task 2"); // 즉시 시작
$group->spawn(fn() => "task 3"); // 즉시 시작
예제 #2 동시성 제한 사용
<?php
use Async\TaskGroup;
$group = new TaskGroup(concurrency: 2);
$group->spawn(fn() => "task 1"); // 즉시 시작
$group->spawn(fn() => "task 2"); // 즉시 시작
$group->spawn(fn() => "task 3"); // 대기열에서 대기
참고
- TaskGroup::spawn — 태스크 추가
- Scope — 코루틴 수명 관리