我的python应用程序中有2个线程。
线程A(好吧,基本上是“main”线程)向队列中添加项目。
线程B正在从队列中获取它。在
代码A:def addTrade(self, date, volume, price, exchange):
'''
Adds a single trade to the database
'''
print "> ADD"
try:
self._incomingDataQueue._put(TradeData(exchange=exchange, date=date, volume=volume, price=price))
# self._dataAvailableEvent.set()
# self._dataAvailableEvent.clear()
print "< ADD"
except Exception as ex:
print "ex: %s" % ex
线程B有以下内容:
^{pr2}$
所以。。。在
结果是:
线程B启动并等待队列中的项目(超时=20秒)。在B启动之后,几乎是在瞬间,一个项目被添加到队列中。15秒后,另一个项目。在
但是:进入队列的get只在20秒后返回。当有新数据可用时,我希望它返回“几乎即时”。在
输出:> GET
> ADD
< ADD
> ADD
< ADD
< GET 20
那么,这是队列的正常行为吗?或者我应该使用另一种机制吗?在
提前谢谢!在