PHP 8.6.0 Beta 1 is available for testing

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitToEnvía una tarea a un worker específico para su ejecución

Descripción

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

Envía la tarea al worker especificado en el Pool. Los workers están indexados a partir de 0, y solo existirán si el pool necesita crearlos (ya que los threads se generan de forma perezosa).

Parámetros

worker
El worker donde apilar la tarea, indexado a partir de 0.
size
La tarea, para su ejecución

Valores devueltos

El identificador del Worker que ha aceptado la tarea.

Ejemplos

Ejemplo #1 Envío de una tarea a un worker específico

<?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()); // apilar todas las tareas en el primer worker
}
$pool->submitTo(1, new Task()); // No es posible apilar la tarea en el segundo worker ya que aún no existe
$pool->shutdown();
?>

El ejemplo anterior mostrará:

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

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes

There are no user contributed notes for this page.

AltStyle によって変換されたページ (->オリジナル) /