(PECL pthreads >= 2.0.0)
Pool::submitTo — Soumet une tâche à un worker spécifique pour exécution
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).
worker
Le worker où empiler la tâche, indexé à partir de 0.
size
La tâche, pour exécution
L'identifiant du Worker qui a accepté la tâche.
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