我有一个带有套接字的线程侦听事件并将它们放入队列中。然后另一个线程正在阅读事件并做一些事情。
非常简化的例子如下:
读取事件并对其进行排队的线程:
while True:
event = socket.recv()
queue.put(event)
读取事件的线程:
while True:
event = queue.get()
queue.task_done()
#Does something with the event
我有几个这样的程序同时并行运行,但它们是孤立的。
问题:
此事件使程序启动多个进程并开始使用CPU。似乎在高CPU负载下出现了问题:我放入队列的事件数量大于我在第二个线程中获得的事件数量。
我试图在任何地方调试它,似乎某些“事件”在某处丢失,这怎么可能?到底是怎么回事?