python - 即使当前队列包含未处理的元素,如何在 python 中通知 queue.join() 以停止阻塞?
问题描述
我有主线程,该线程等待优先级队列(PQ)中的项目由消费者线程处理。消费者线程从不同的填充线程接收项目。每当消费者线程收到高优先级的“TERMINATOR”项目时,它就会死亡。但是由于主线程正在等待队列元素被处理,所以它永远不会退出。有没有办法让我通知 PQ.join() 返回而不使用 while 循环来清空我的队列(如果我使用 while 循环,队列中的大量项目会导致很多延迟)
解决方案
您可以等待消费者线程而不是优先级队列,这似乎是您想要等待的东西,即consumer_thread.join()
而不是PQ.join()
.
推荐阅读
- html - 如何在 vue bootstrap 4 中用图像替换选项卡(类似于 navbar-brand)?
- c# - 从 C# 在 PowerShell 6 中运行 PowerShell 脚本
- android - 未找到使用有效 url 处理 Intent 错误的活动
- pyspark - Getting pyspark.sql.utils.ParseException while running sql query in pyspark
- typescript - when compiling a typescript library, how to build only to es2016?
- javascript - Dialogflow 到 Firestore 内联编辑器 javascript:对集合的不同参数进行排序和过滤
- php - NGINX - 如何将“/ ”重定向到 index.php?page=
- java - Powershell does not recognise Java as the name of a cmdlet, function, script file, or operable program
- python - Finding the error in my Python function, which is supposed to return a list [average_steps, list_of_steps], and plot a histogram of steps?
- python - Python: TypeError: 'int' object is not iterable - when iterating a dict