擅长:python、mysql、java
<p>我认为在Python中实现这一点的最简单和最一般的方法是使用<a href="http://twistedmatrix.com/" rel="nofollow">Twisted</a>(一个基于事件的网络引擎)来实现这一点。在</p>
<pre><code>from twisted.internet import reactor
from twisted.internet import task
c, i = 0, 0
def timedCount():
global c
c += 1
print 'c =', c
def mainCount():
global i
i += 1
print 'i =', i
c_loop = task.LoopingCall(timedCount)
i_loop = task.LoopingCall(mainCount)
c_loop.start(0.1)
i_loop.start(0.5)
reactor.run()
</code></pre>
<p>Twisted有一个高效和稳定的事件循环实现,称为reactor。这使得它是单线程的,基本上与上面示例中的Javascript非常相似。我之所以用它来做像你上面的周期性任务,是因为它提供了一些工具,让你可以轻松地添加任意多个复杂的周期。在</p>
<p>它还提供<a href="http://twistedmatrix.com/documents/current/core/howto/time.html" rel="nofollow">more tools for scheduling task calls</a>您可能会觉得有趣。在</p>