擅长:python、mysql、java
<p>您可以使用<code>deferToThread</code>而不是<code>callInThread</code>/<code>callFromThread</code>对来简化这一点:</p>
<pre><code>from twisted.internet.threads import deferToThread
def cleanup(self):
isWorkingDF = deferToThread(self.stuff.isWorking)
def shutdownOrNot(isWorking):
if isWorking:
#shutdown necessary, shutdown is also a blocking call
return deferToThread(self.stuff.shutdown)
isWorkingDF.addCallback(shutdownOrNot)
return isWorkingDF
</code></pre>
<p><code>deferToThread</code>基本上只是一个很好的包装器,围绕着在函数版本中实现了两次的同一线程逻辑。在</p>