TaskSet::spawn
(PHP 8.6+, True Async 1.0)
public TaskSet::spawn(callable $task, mixed ...$args): void
Fügt ein Callable mit einem automatisch inkrementierten Schlüssel (0, 1, 2, …) zum Set hinzu.
Wenn kein Nebenläufigkeitslimit gesetzt ist oder ein Slot verfügbar ist, wird die Coroutine sofort erstellt. Andernfalls wird das Callable mit seinen Argumenten in eine Warteschlange eingereiht und gestartet, sobald ein Slot frei wird.
Parameter
- task
- Auszuführendes Callable. Akzeptiert jedes Callable: Closure, Funktion, Methode.
- args
- Argumente, die an das Callable übergeben werden.
Fehler
Wirft Async\AsyncException, wenn das Set versiegelt (seal()) oder abgebrochen (cancel()) wurde.
Beispiele
Beispiel #1 Grundlegende Verwendung
<?php
use Async\TaskSet;
spawn(function() {
$set = new TaskSet();
$set->spawn(fn() => "first");
$set->spawn(fn() => "second");
$set->seal();
$results = $set->joinAll()->await();
var_dump($results[0]); // string(5) "first"
var_dump($results[1]); // string(6) "second"
});
Beispiel #2 Mit Argumenten
<?php
use Async\TaskSet;
spawn(function() {
$set = new TaskSet();
$set->spawn(function(int $a, int $b) {
return $a + $b;
}, 10, 20);
$set->seal();
$results = $set->joinAll()->await();
var_dump($results[0]); // int(30)
});
Siehe auch
- TaskSet::spawnWithKey — Einen Task mit explizitem Schlüssel hinzufügen
- TaskSet::joinAll — Auf alle Tasks warten