array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'zh', ), 'this' => array ( 0 => 'class.worker.php', 1 => 'Worker', ), 'up' => array ( 0 => 'book.pthreads.php', 1 => 'pthreads', ), 'prev' => array ( 0 => 'thread.start.php', 1 => 'Thread::start', ), 'next' => array ( 0 => 'worker.collect.php', 1 => 'Worker::collect', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'zh', 'path' => 'reference/pthreads/worker.xml', ), 'extra_header_links' => array ( 'rel' => 'alternate', 'href' => '/manual/en/feeds/class.worker.atom', 'type' => 'application/atom+xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL pthreads >= 2.0.0)
Worker 是一个具有持久化上下文的线程对象,通常用来在多个线程中使用。
当一个 Worker 对象开始之后,会执行它的 run 方法,但是即使 run 方法执行完毕,线程本身也不会消亡,除非遇到以下情况:
Worker 对象超出作用范围(没有指向它的引用了)
代码调用了 Worker 对象的 shutdown 方法
整个脚本终止了
这意味着程序员可以在程序执行过程中重用这个线程上下文: 在 Worker 对象的栈中添加对象会激活 Worker 对象执行被加入对象的 run 方法。