# A classe Worker

(PECL pthreads >= 2.0.0)

## Introdução

Worker Threads têm um contexto persistente, portanto, devem ser usados sobre Threads na maioria dos casos.

Quando um Worker é iniciado, o método run será executado, mas o Thread não sairá até que uma das seguintes condições seja atendida:

- o Worker sai do escopo (não restam mais referências)
- o programador chama shutdown
- o script morre

Isto significa que o programador pode reutilizar o contexto durante a execução; colocar objetos na pilha do Worker fará com que o Worker execute o método run dos objetos empilhados.

## Resumo da classe

class Worker extends Thread implements Traversable, Countable, ArrayAccess {
/* Métodos */
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
/* Métodos herdados */
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
}

## Índice

- Worker::collect — Coleta referências a tarefas concluídas
- Worker::getStacked — Obtém o tamanho da pilha restante
- Worker::isShutdown — Detecção de estado
- Worker::shutdown — Desliga o trabalhador
- Worker::stack — Trabalho de empilhamento
- Worker::unstack — Trabalho de desempilhamento

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