International PHP Conference Berlin 2025

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitToSoumet une tâche à un worker spécifique pour exécution

Description

public Pool::submitTo(int $worker, Threaded $task): int

Soumet la tâche au worker spécifié dans le Pool. Les travailleurs sont indexés à partir de 0, et n'existera que si le pool a besoin de les créer (puisque les threads sont générés paresseusement).

Liste de paramètres

worker

Le worker où empiler la tâche, indexé à partir de 0.

size

La tâche, pour exécution

Valeurs de retour

L'identifiant du Worker qui a accepté la tâche.

Exemples

Exemple #1 Soumission d'une tâche à un worker spécifique

<?php
class Task extends Threaded {
public function
run() {
var_dump(Thread::getCurrentThreadID());
}
}


$pool = new Pool(2);

$pool->submit(new Task());

for (
$i = 0; $i < 5; ++$i) {
$pool->submitTo(0, new Task()); // empilez toutes les tâches sur le premier worker
}

$pool->submitTo(1, new Task()); // Impossible d'empiler la tâche sur le deuxième worker car il n'existe pas encore

$pool->shutdown();
?>

L'exemple ci-dessus va afficher :

int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)

Fatal error: Uncaught Exception: The selected worker (1) does not exist in %s:%d

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top