TaskGroup::__construct
(PHP 8.6+, True Async 1.0)
public TaskGroup::__construct(?int $concurrency = null, ?Async\Scope $scope = null)
Cree un nouveau groupe de taches.
Parametres
- concurrency
- Nombre maximum de coroutines s’executant simultanement.
null— pas de limite, toutes les taches sont demarrees immediatement. Lorsque la limite est atteinte, les nouvelles taches sont placees dans une file d’attente et demarrees automatiquement lorsqu’un emplacement se libere. - scope
- Scope parent. TaskGroup cree un scope enfant pour ses coroutines.
null— le scope actuel est herite.
Exemples
Exemple #1 Sans limites
<?php
use Async\TaskGroup;
$group = new TaskGroup();
$group->spawn(fn() => "task 1"); // demarre immediatement
$group->spawn(fn() => "task 2"); // demarre immediatement
$group->spawn(fn() => "task 3"); // demarre immediatement
Exemple #2 Avec limite de concurrence
<?php
use Async\TaskGroup;
$group = new TaskGroup(concurrency: 2);
$group->spawn(fn() => "task 1"); // demarre immediatement
$group->spawn(fn() => "task 2"); // demarre immediatement
$group->spawn(fn() => "task 3"); // attend dans la file d'attente
Voir aussi
- TaskGroup::spawn — Ajouter une tache
- Scope — Gestion du cycle de vie des coroutines