在Python2.7中,使用Queue
模块时:
q = Queue.PriorityQueue(maxsize=3)
q.put((1,'foo'))
q.put((2,'bar'))
q.put((3,'baz'))
q.put((4,'boo')) # on purpose
然后脚本卡住了。我也试过Ipython,当我放第4项时它会卡住。为什么会这样?如何正确使用PriorityQueue
创建给定大小的优先级队列。
答案 0 :(得分:4)
Queue.put(item [,block [,timeout]])
将项目放入队列。 如果可选的args块为true且超时为 无(默认值),必要时阻止,直到有空闲插槽为止。 如果timeout是一个正数,它最多会阻塞超时秒数 如果其中没有可用的空闲插槽,则引发完全例外 时间。否则(块为假),如果有空,则将项目放在队列中 slot立即可用,否则引发Full异常(超时 在这种情况下被忽略。)