PHP 7.4.25 Released!

Pool::submitTo

(PECL pthreads >= 2.0.0)

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

Описание

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

Отправляет задачу указанному воркеру в пуле. Воркеры индексируются с 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

add a note add a note

User Contributed Notes

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