Python队列模块卡住了

时间:2014-11-11 16:07:31

标签: python python-2.7

在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创建给定大小的优先级队列。

1 个答案:

答案 0 :(得分:4)

根据Queue module documentation

  

Queue.put(item [,block [,timeout]])

     

将项目放入队列。 如果可选的args块为true且超时为   无(默认值),必要时阻止,直到有空闲插槽为止。   如果timeout是一个正数,它最多会阻塞超时秒数   如果其中没有可用的空闲插槽,则引发完全例外   时间。否则(块为假),如果有空,则将项目放在队列中   slot立即可用,否则引发Full异常(超时   在这种情况下被忽略。)