0

如何搜索或浏览存储在queue.Queue实例中的消息?

是否可以在不实际获取每条消息、检查其内容并将其放回的情况下这样做?

4

2 回答 2

0

没有办法做到这一点。队列的重点是您只需执行 put 和 get 就可以了。

如果您需要搜索队列,您可以获取第一个元素,保存对它的引用,将其放回队列中,然后执行获取和放置,直到返回第一个元素(假设您只有一个线程放置事情进入队列)。

于 2012-09-21T17:21:17.030 回答
0

如果你不介意弄乱实现的细节,你可以遍历内部的 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
于 2012-09-21T17:55:43.420 回答