# La classe Worker

(PECL pthreads >= 2.0.0)

## Introduction

Les Threads Worker ont un contexte persistant, aussi, ils devraient être utilisés de préférence aux Threads dans la plupart des cas.

Quand un Worker est démarré, la méthode run() sera exécutée, 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 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éthodes héritées */
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
}

## 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

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