我的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
那么,这是队列的正常行为吗?或者我应该使用另一种机制吗?在
提前谢谢!在
问题是您调用的是
Queue._put
,而不是Queue.put
。我看不出你为什么要那么做。在前导下划线表示
_put
方法不是类Queue
的公共接口的一部分,因此不应直接调用它。在相关问题 更多 >
编程相关推荐