TaskSet::spawn
(PHP 8.6+, True Async 1.0)
php
public TaskSet::spawn(callable $task, mixed ...$args): voidFü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
<?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
<?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