队列中的元素会丢失

时间:2016-11-23 14:56:19

标签: python multithreading queue

我有一个带有套接字的线程侦听事件并将它们放入队列中。然后另一个线程正在阅读事件并做一些事情。

非常简化的例子如下:

读取事件并对其进行排队的线程:

while True:
    event = socket.recv()
    queue.put(event)

读取事件的线程:

while True:
    event = queue.get()
    queue.task_done()
    #Does something with the event

我有几个这样的程序同时并行运行,但它们是孤立的。

问题

此事件使程序启动多个进程并开始使用CPU。似乎在高CPU负载下出现了问题:我放入队列的事件数量大于我在第二个线程中获得的事件数量。

我试图在任何地方调试它,似乎某些“事件”在某处丢失,这怎么可能?到底是怎么回事?

0 个答案:

没有答案