请问python中q.get_nowait()是在什么情况下使用的?

求大佬讲解一下谢谢请问python中q.get_nowait()是在什么情况下使用的?

用于支持跟踪 排队的任务 是否 被守护的消费者线程 完整的处理。

参考官网文档https://docs.python.org/zh-cn/3/library/queue.html

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

Python的队列有很多种,比如进程队列、协程队列等,题主的问题大概是指标准模块queue的队列。读queue模块的队列,有两种方式:阻塞式和非阻塞式。q.get()属于阻塞式,当队列为空时,q.get()就会阻塞,直到(其他线程写入数据后本线程)读到数据才会返回;q.get_nowait()属于非阻塞式,当队列为空时,立刻返回并抛出异常。

>>> import queue
>>> q = queue.Queue()
>>> q.get_nowait() # 队列空,抛出异常
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    q.get_nowait()
_queue.Empty
>>> q.put(3) # 写队列
>>> q.get_nowait() # 可以读出
3
>>> q.put(4) # 写队列
>>> q.get() # 阻塞式读,因为队列非空,立即返回
4
>>> q.get() # 队列空,阻塞,不会返回(此时只有关闭IDLE退出)

 

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y