# Worker 类

(PECL pthreads >= 2.0.0)

## 简介

Worker 是一个具有持久化上下文的线程对象，通常用来在多个线程中使用。

当一个 Worker 对象开始之后，会执行它的 run 方法，但是即使 run 方法执行完毕，线程本身也不会消亡，除非遇到以下情况：

- Worker 对象超出作用范围（没有指向它的引用了）
- 代码调用了 Worker 对象的 shutdown 方法
- 整个脚本终止了

这意味着程序员可以在程序执行过程中重用这个线程上下文： 在 Worker 对象的栈中添加对象会激活 Worker 对象执行被加入对象的 run 方法。

## 类摘要

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
publicfunction Thread::isJoined(): bool
publicfunction Thread::isStarted(): bool
publicfunction Thread::join(): bool
public function Thread::start(int `$options` = ?): bool
}

## 目录

- Worker::collect — Collect references to completed tasks
- Worker::getStacked — 获取剩余的栈大小
- Worker::isShutdown — 状态检测
- Worker::shutdown — 关闭 Worker
- Worker::stack — 将要执行的任务入栈
- Worker::unstack — 将要执行的任务出栈

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