Класс Pool

(PECL pthreads >= 2.0.0)

Введение

Объект Pool является контейнером для хранения объектов Worker, управления ими и регулирования их количества.

Контейнеризация представляет собой высший уровень абстракции над функционалом Worker включая управление ссылками в корректном для pthreads виде.

Обзор классов

class Pool {
/* Свойства */
protected $size;
protected $class;
protected $workers;
protected $ctor;
protected $last;
/* Методы */
public __construct(int $size, string $class = ?, array $ctor = ?)
public collect(Callable $collector = ?): int
public resize(int $size): void
public shutdown(): void
public submit(Threaded $task): int
public submitTo(int $worker, Threaded $task): int
}

Свойства

size

максимальное количество объектов Worker

class

класс Worker

workers

ссылки на объекты Worker

ctor

аргументы конструктора новых объектов Worker

last

смещение последнего использованного Worker в workers

Содержание

  • Pool::collect — Собирает ссылки на выполненные задания
  • Pool::__construct — Создаёт новый пул воркеров
  • Pool::resize — Изменяет размер пула
  • Pool::shutdown — Выключает все воркеры
  • Pool::submit — Отправляет объект на исполнение
  • Pool::submitTo — Отправляет задачу конкретному воркеру для выполнения