# La classe Worker

(PECL pthreads >= 2.0.0)

## Introduction

Les Threads Worker ont un contexte persistent, aussi, ils peuvent être utilisés via Threads dans la plupart des cas.

Quand un Worker est démarré, la méthode run() sera exécuté, mais le Thread ne s'arrêtera pas tant qu'une des conditions suivantes n'est pas atteinte :

- le Worker est hors de portée (aucune référence restante) ;

- le développeur appelle shutdown() ;

- le script meurt.

Ce qui signifie que le développeur peut réutiliser le contexte tout au long de l'exécution ; placer des objets sur la pile du Worker va entrainer le Worker à exécuter la méthode run() sur les objets empilés.

## Synopsis de la classe

class Worker extends Thread implements Traversable, Countable, ArrayAccess {
/* Méthodes */
public collect(Callable `$collector` = ?): int
public getStacked(): int
public isShutdown(): bool
public shutdown(): bool
public stack(Threaded `&$work`): int
public unstack(): int
/* Méthodes héritées */
public Thread::getCreatorId(): int
public static Thread::getCurrentThread(): Thread
public static Thread::getCurrentThreadId(): int
public Thread::getThreadId(): int
public Thread::isJoined(): bool
public Thread::isStarted(): bool
public Thread::join(): bool
public Thread::start(int `$options` = ?): bool
}

## Sommaire

- Worker::collect — Collecte les références des tâches terminées
- Worker::getStacked — Obtient la taille de pile restante
- Worker::isShutdown — Détection de statut
- Worker::shutdown — Arrêter le worker
- Worker::stack — Empile la tâche
- Worker::unstack — Dépile une tâche