如何搜索或浏览存储在queue.Queue
实例中的消息?
是否可以在不实际获取每条消息、检查其内容并将其放回的情况下这样做?
没有办法做到这一点。队列的重点是您只需执行 put 和 get 就可以了。
如果您需要搜索队列,您可以获取第一个元素,保存对它的引用,将其放回队列中,然后执行获取和放置,直到返回第一个元素(假设您只有一个线程放置事情进入队列)。
如果你不介意弄乱实现的细节,你可以遍历内部的 deque 对象。
>>> import Queue
>>> q = Queue.Queue()
>>> q.put(1)
>>> q.put(2)
>>> with q.mutex:
... for item in q.queue:
... print item
...
1
2
>>> q.get()
1
>>> q.get()
2