老师,为什么self.page_queue.get()中block的参数要设置为False呢?

老师,为什么self.page_queue.get()中block的参数要设置为False呢?

老师,为什么self.page_queue.get()中block的参数要设置为False呢?从队列中获取数据不就是一条接着一条获取的吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小猿 2022-08-12 09:52:33

同学,你好!队列是一条条取值的。.get()默认是block=True 它的作用是当队列为空时,会一直等待队列有数据造成队列阻塞。设置block =False 当队列为空时不会造成队列阻塞,可以继续取值。祝学习愉快~

  • 提问者 慕田峪6467393 #1

    老师,那什么样的场景需要get()是block=True,反之什么样的场景需要block=Flase呢?

    2022-08-12 16:17:38
  • 好帮手慕小猿 回复 提问者 慕田峪6467393 #2

    同学,你好!当队列为空并设置block=False时为非阻塞状态,继续取值会抛出异常
    https://img1.sycdn.imooc.com//climg/62f6275408d33a5114730738.jpg
    当队列为空并设置block=True时为阻塞状态,不报错
    https://img1.sycdn.imooc.com//climg/62f6279d09f6da1414850588.jpg
    使用场景看同学需要继续等待队列中有数据存入,还是不想等待存入数据直接抛出异常。祝学习愉快~

    2022-08-12 18:13:12
  • 提问者 慕田峪6467393 回复 好帮手慕小猿 #3

    明白了,谢谢老师

    2022-08-14 11:43:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师