TaskGroup::__construct
(PHP 8.6+, True Async 1.0)
php
public TaskGroup::__construct(?int $concurrency = null, ?Async\Scope $scope = null)Crea un nuovo gruppo di task.
Parametri
concurrency : Numero massimo di coroutine in esecuzione contemporanea. null --- nessun limite, tutti i task vengono avviati immediatamente. Quando il limite viene raggiunto, i nuovi task vengono messi in coda e avviati automaticamente quando uno slot si libera.
scope : Scope padre. TaskGroup crea uno scope figlio per le sue coroutine. null --- viene ereditato lo scope corrente.
Esempi
Esempio #1 Senza limiti
php
<?php
use Async\TaskGroup;
$group = new TaskGroup();
$group->spawn(fn() => "task 1"); // parte immediatamente
$group->spawn(fn() => "task 2"); // parte immediatamente
$group->spawn(fn() => "task 3"); // parte immediatamenteEsempio #2 Con limite di concorrenza
php
<?php
use Async\TaskGroup;
$group = new TaskGroup(concurrency: 2);
$group->spawn(fn() => "task 1"); // parte immediatamente
$group->spawn(fn() => "task 2"); // parte immediatamente
$group->spawn(fn() => "task 3"); // attende in codaVedi anche
- TaskGroup::spawn --- Aggiunge un task
- Scope --- Gestione del ciclo di vita delle coroutine