TaskSet::__construct
(PHP 8.6+, True Async 1.0)
public TaskSet::__construct(?int $concurrency = null, ?Async\Scope $scope = null)
Erstellt ein neues Task-Set mit automatischer Bereinigung der Ergebnisse nach der Auslieferung.
Parameter
- concurrency
- Maximale Anzahl gleichzeitig laufender Coroutinen.
null— kein Limit, alle Tasks starten sofort. Wenn das Limit erreicht ist, werden neue Tasks in eine Warteschlange eingereiht und automatisch gestartet, sobald ein Slot frei wird. - scope
- Übergeordneter Scope. TaskSet erstellt einen untergeordneten Scope für seine Coroutinen.
null— der aktuelle Scope wird geerbt.
Beispiele
Beispiel #1 Ohne Limits
<?php
use Async\TaskSet;
$set = new TaskSet();
$set->spawn(fn() => "task 1"); // startet sofort
$set->spawn(fn() => "task 2"); // startet sofort
$set->spawn(fn() => "task 3"); // startet sofort
Beispiel #2 Mit Nebenläufigkeitslimit
<?php
use Async\TaskSet;
$set = new TaskSet(concurrency: 2);
$set->spawn(fn() => "task 1"); // startet sofort
$set->spawn(fn() => "task 2"); // startet sofort
$set->spawn(fn() => "task 3"); // wartet in der Warteschlange
Siehe auch
- TaskSet::spawn — Einen Task hinzufügen
- TaskGroup::__construct — TaskGroup-Konstruktor