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