(PECL pthreads >= 2.0.0)

Pool::submitTo - отправляет задачу конкретному работнику для выполнения

Описание

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

Отправка задачи указанному работнику в пуле. Рабочие индексируются от 0 и будут существовать только в том случае, если пул должен создать их (так как потоки лениво порождаются).

Список параметров

worker

Рабочий для стека задачи, индексированный от 0.

task

Задача для выполнения.

Возвращаемые значения

Идентификатор работника, принявшего задачу.

Примеры

Пример #1 Отправка задач определенному работнику

<?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()); // стек всех задач на первого работника
}

$pool->submitTo(1, new Task()); // не может сложить задачу на второго работника, потому что он еще не существует

$pool->shutdown();

Результат выполнения данного примера:

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