python - Python多线程队列窥视
问题描述
我有一个多线程程序,该程序具有一个管理线程,该线程定期将各种类型的作业放入许多工作线程共享的队列中,这些作业在放入队列时拾取作业(它是 a queue.SimpleQueue
)。工作线程完成作业所需的时间可能会有很大差异,所以基本上我需要从管理线程中知道给定的作业类型是否已经在队列中,以避免放入另一个相同类型的作业。但是我看不出有办法窥视队列。
解决方案
您需要使用单独的数据结构来跟踪放入队列中的任务。一个好主意是为每个任务生成唯一的任务 ID 并将它们放在字典中。
当任务完成时,您done=True
使用该任务 ID 设置一个属性(例如 )。
在分布式系统中使用外部数据存储(例如数据库或 Redis)可能更容易管理。
推荐阅读
- c# - 如何在 ZK4500 指纹扫描仪中将手指数据保存到数据库并使用 c# 匹配手指?
- sql-server - 与另一个表的日期列相比,根据其日期列更新表
- ruby-on-rails - 实施acts_as_commentable时出错:未初始化的常量 Discussion::Comment
- node.js - Azure AD B2C (NodeJS):使用有效令牌的请求出现未经授权的 401 错误
- java - 无法从本地系统帐户检索进程信息
- git - 如何更改用其他软件打开“git log”而不是默认的less?
- r - R:为什么我使用 spread() 会丢失数据?
- javascript - 如何将 axios 与原生 es6 模块一起使用?
- jquery - 更新 Vue 实例会禁用某些元素
- c - 打印指向 char 指针数组的指针时出现段错误