Python Queue.Queue.get Method



在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被忽略)。

最新更新