首页 > 解决方案 > 即使当前队列包含未处理的元素,如何在 python 中通知 queue.join() 以停止阻塞?

问题描述

我有主线程,该线程等待优先级队列(PQ)中的项目由消费者线程处理。消费者线程从不同的填充线程接收项目。每当消费者线程收到高优先级的“TERMINATOR”项目时,它就会死亡。但是由于主线程正在等待队列元素被处理,所以它永远不会退出。有没有办法让我通知 PQ.join() 返回而不使用 while 循环来清空我的队列(如果我使用 while 循环,队列中的大量项目会导致很多延迟)

标签: pythonmultithreadingqueuepriority-queueblocking

解决方案


您可以等待消费者线程而不是优先级队列,这似乎是您想要等待的东西,即consumer_thread.join()而不是PQ.join().


推荐阅读