我有一个主线程,该线程等待用户线程处理优先级队列(PQ)中的项目。使用者线程从另一个填充器线程接收项目。每当使用者线程收到高优先级的“ TERMINATOR”项时,它就会死亡。但是由于主线程正在等待要处理的队列元素,所以它永远不会退出。有没有一种方法可以通知PQ.join()返回而无需使用while循环来清空我的队列(如果使用while循环,队列中的大量项目会导致很多延迟)
您可以等待使用者线程而不是优先级队列,这似乎是您要等待的事情,即consumer_thread.join()
而不是PQ.join()
。