PHP Conference Kansai 2025

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitToEnvia uma tarefa a um trabalhador específico para execução

Descrição

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

Envia uma tarefa para o trabalhador especificado no pool. Os trabalhadores são indexados a partir de 0 e só existirão se o pool precisar criá-los (já que as threads são geradas lentamente).

Parâmetros

worker

O trabalhador para o qual a tarefa será enviada, indexado em 0.

task

A tarefa para execução.

Valor Retornado

O identificador do trabalhador que aceitou a tarefa.

Exemplos

Exemplo #1 Enviar tarefas para um trabalhador 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()); // empilha todas as tarefas no primeiro trabalhador
}

$pool->submitTo(1, new Task()); // não é possível empilhar a tarefa no segundo trabalhador porque ele ainda não existe

$pool->shutdown();

O exemplo acima produzirá:

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

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top