# Класс Worker

(PECL pthreads >= 2.0.0)

## Введение

Рабочие потоки имеют постоянный контекст, поэтому в большинстве случаев их следует использовать поверх потоков.

Когда Worker запущен, будет выполнен метод run, но Thread не завершится, пока не будет выполнено одно из следующих условий:

- Worker исчезнет из области видимости (не останется ни одной ссылки на него)
- программист вызовет функцию остановки
- скрипт завершит работу

Это значит, что программист может переиспользовать контекст во время исполнения. Размещение объекта на стек объекта Worker приведёт к запуску метода run этого объекта.

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

class Worker extends Thread implements Traversable, Countable, ArrayAccess {
/* Методы */
public function collect(Callable `$collector` = ?): int
public function getStacked(): int
public function isShutdown(): bool
public function shutdown(): bool
public function stack(Threaded `&$work`): int
public function unstack(): int
/* Наследуемые методы */
public function Thread::getCreatorId(): int
public static function Thread::getCurrentThread(): Thread
public static function Thread::getCurrentThreadId(): int
public function Thread::getThreadId(): int
public function Thread::isJoined(): bool
public function Thread::isStarted(): bool
public function Thread::join(): bool
public function Thread::start(int `$options` = ?): bool
}

## Содержание

- Worker::collect — Собрать ссылки на завершённые задачи
- Worker::getStacked — Возвращает текущий размер стека
- Worker::isShutdown — Определение состояния
- Worker::shutdown — Остановить Worker
- Worker::stack — Положить задачу на стек
- Worker::unstack — Убирает задачу из стека

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open