Клас 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— Надсилає завдання конкретному воркеру для виконання