# La clase Worker

(PECL pthreads >= 2.0.0)

## Introducción

Los Threads Worker tienen un contexto persistente, por lo tanto, pueden ser utilizados mediante Threads en la mayoría de los casos.

Cuando un Worker es iniciado, el método run será ejecutado, pero el Thread no se detendrá hasta que una de las siguientes condiciones se cumpla:

- el Worker está fuera de alcance (no hay referencias restantes);
- el desarrollador llama a shutdown;
- el script muere.

Esto significa que el desarrollador puede reutilizar el contexto durante toda la ejecución; colocar objetos en la pila del Worker hará que el Worker ejecute el método run sobre los objetos apilados.

## Sinopsis de la Clase

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 heredados */
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
}

## Tabla de contenidos

- Worker::collect — Recopila las referencias de las tareas finalizadas
- Worker::getStacked — Obtiene el tamaño de pila restante
- Worker::isShutdown — Detección de estado
- Worker::shutdown — Detener el worker
- Worker::stack — Apila la tarea
- Worker::unstack — Desapila una tarea

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