TaskGroup::__construct

(PHP 8.6+, True Async 1.0)

public TaskGroup::__construct(?int $concurrency = null, ?Async\Scope $scope = null)

Создаёт новую группу задач.

Параметры

concurrency
Максимальное количество одновременно работающих корутин. null — без ограничений, все задачи запускаются сразу. При достижении лимита новые задачи помещаются в очередь и запускаются автоматически при освобождении слота.
scope
Родительский scope. TaskGroup создаёт дочерний scope для своих корутин. null — наследуется текущий scope.

Примеры

Пример #1 Без ограничений

<?php

use Async\TaskGroup;

$group = new TaskGroup();
$group->spawn(fn() => "задача 1"); // запускается сразу
$group->spawn(fn() => "задача 2"); // запускается сразу
$group->spawn(fn() => "задача 3"); // запускается сразу

Пример #2 С ограничением конкурентности

<?php

use Async\TaskGroup;

$group = new TaskGroup(concurrency: 2);
$group->spawn(fn() => "задача 1"); // запускается сразу
$group->spawn(fn() => "задача 2"); // запускается сразу
$group->spawn(fn() => "задача 3"); // ждёт в очереди

См. также