擅长:python、mysql、java
<p>既然您添加了有关该问题的更多信息,我将建议另一种解决方案。在</p>
<p>创建机器后,可能需要将它们链接在一起。在</p>
<pre><code>class Machine(object):
def __init__(self):
self.handoff = None
def input(self, item):
item = do_something(item) # machine processes item
self.handoff(item) # machine hands off item to next machine
m0 = Machine()
m1 = Machine()
m0.handoff = m1.input
m2 = Machine()
m1.handoff = m2.input
def output(item):
print(item)
m2.handoff = output
</code></pre>
<p>现在,当您调用<code>m0.input(item)</code>时,它将执行其处理,然后将该项交给<code>m1</code>,后者将执行相同的操作,并传递给<code>m2</code>,后者将进行处理并调用<code>output()</code>。这个例子展示了同步处理(在函数调用返回之前,一个项将通过整个链),但是您也可以让<code>.input()</code>方法将该项放在队列中进行处理,然后立即返回;这样,您可以使机器并行处理。在</p>
<p>在这个系统中,机器之间的连接是明确的,每台机器只知道跟在它后面的那台机器(它需要<em>知道的那个)。在</p>
<p>我用“线程”这个词来描述像这样将对象链接在一起的过程。一个正在处理的项目在到达输出之前遵循从一台机器到另一台机器的线程。它有点模棱两可,因为它与执行线程无关,所以这个术语并不完美。在</p>