首页 > 解决方案 > Python多线程队列窥视

问题描述

我有一个多线程程序,该程序具有一个管理线程,该线程定期将各种类型的作业放入许多工作线程共享的队列中,这些作业在放入队列时拾取作业(它是 a queue.SimpleQueue)。工作线程完成作业所需的时间可能会有很大差异,所以基本上我需要从管理线程中知道给定的作业类型是否已经在队列中,以避免放入另一个相同类型的作业。但是我看不出有办法窥视队列。

标签: pythonmultithreadingqueue

解决方案


您需要使用单独的数据结构来跟踪放入队列中的任务。一个好主意是为每个任务生成唯一的任务 ID 并将它们放在字典中。

当任务完成时,您done=True使用该任务 ID 设置一个属性(例如 )。

在分布式系统中使用外部数据存储(例如数据库或 Redis)可能更容易管理。


推荐阅读