# Worker クラス

(PECL pthreads >= 2.0.0)

## はじめに

ワーカースレッドには永続コンテキストがあり、たいていの場合はスレッドに対して使えます。

ワーカーを開始させると run メソッドを実行しますが、以下のいずれかの条件を満たすまでスレッドは終了しません。

- Worker がスコープから外れる (どこからも参照されなくなる)
- プログラマーが shutdown を呼ぶ
- スクリプトが終了する

つまり、プログラマーは実行中のコンテキストを再利用できるということです。 オブジェクトを Worker のスタックに置くと、そのオブジェクトの run メソッドを Worker が実行します。

## クラス概要

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 — Collect references to completed tasks
- Worker::getStacked — Gets the remaining stack size
- Worker::isShutdown — State Detection
- Worker::shutdown — Shutdown the worker
- Worker::stack — Stacking work
- Worker::unstack — Unstacking work

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