TaskGroup::__construct
(PHP 8.6+, True Async 1.0)
public TaskGroup::__construct(?int $concurrency = null, ?Async\Scope $scope = null)
Erstellt eine neue Aufgabengruppe.
Parameter
- concurrency
- Maximale Anzahl gleichzeitig laufender Coroutinen.
null— kein Limit, alle Aufgaben werden sofort gestartet. Wenn das Limit erreicht ist, werden neue Aufgaben in eine Warteschlange gestellt und automatisch gestartet, sobald ein Platz frei wird. - scope
- Uebergeordneter Scope. TaskGroup erstellt einen untergeordneten Scope fuer ihre Coroutinen.
null— der aktuelle Scope wird geerbt.
Beispiele
Beispiel #1 Ohne Limits
<?php
use Async\TaskGroup;
$group = new TaskGroup();
$group->spawn(fn() => "Aufgabe 1"); // startet sofort
$group->spawn(fn() => "Aufgabe 2"); // startet sofort
$group->spawn(fn() => "Aufgabe 3"); // startet sofort
Beispiel #2 Mit Parallelitaetslimit
<?php
use Async\TaskGroup;
$group = new TaskGroup(concurrency: 2);
$group->spawn(fn() => "Aufgabe 1"); // startet sofort
$group->spawn(fn() => "Aufgabe 2"); // startet sofort
$group->spawn(fn() => "Aufgabe 3"); // wartet in der Warteschlange
Siehe auch
- TaskGroup::spawn — Eine Aufgabe hinzufuegen
- Scope — Verwaltung des Coroutine-Lebenszyklus