Thread对象和Worker对象(PHP pthreads)之间有什么区别?

4
到目前为止,我发现的唯一解释在这里:http://pthreads.org 但是从代码角度来看,这意味着什么?何时应该使用Worker(s),何时应该使用Threads?
谢谢!
1个回答

10

它们都是线程,但是Thread旨在执行一个任务(在其run方法中定义),然后退出。Worker旨在等待任务,以Stackable衍生对象的形式实现其自己的run方法,并按照插入顺序从堆栈中执行它们。

通过这种方式,Worker允许您重用上下文,它们提供了一种相当难以在用户空间编程的效率手段,但并非不可能。


每次实例化一个新的Stackable而不是添加回调(以数组/字符串形式)会很慢,不是吗?例如:$stack[] = ["ExClass", "method"]; 并在一个线程中执行:while (true) { if (count($stack)) ${'callback'.!($callback = $stack->shift())}(); else $this->wait(); } - bwoebi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接