PHP 8.6.0 Beta 1 is available for testing

Pool::submitTo

(PECL pthreads >= 2.0.0)

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

Описание

public function 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

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

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