在python文档中,它说
异常队列。空
在空的队列对象上调用非阻塞 get()(或 get_nowait())时引发的异常。
所以我想知道以下编码是否会引发 Queue.Empty 异常,因为它使用"get"方法的方式似乎是非阻塞的。
这是代码。
try:
request = self._requests_queue.get(True, self._poll_timeout)
except Queue.Empty:
continue
文档说明了回答问题需要知道的所有内容(强调我的):
Queue.get([block[, timeout]])
从队列中删除并返回项目。如果
true
可选参数block
并且timeout
None
(默认值),则在必要时阻止,直到项目可用。如果timeout
是正数,则最多阻止timeout
秒,如果该时间内没有可用项目,则会引发Empty
异常。否则(block
为 false),如果立即可用,则返回一个项目,否则引发Empty
异常(在这种情况下timeout
被忽略)。