Python队列get()/ task_done()问题

发布于 2021-01-29 15:07:19

我的消费者队列:

m = queue.get()
queue.task_done()

<rest of the program>

问题:

  1. 是否task_done()有效地弹出m队列并释放消费者对队列的任何锁定?

  2. 我需要m在程序的其余部分中使用。它是安全的,或者我需要复制它之前,我打电话task_done()或者是m使用后task_done()

要开心

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    不,queue.get()将项目弹出队列。完成此操作后,只要生产者按应有的方式工作并且不再碰它,就可以随心所欲地对其进行操作。queue.task_done()调用只是为了通知队列您已经完成某件事(它甚至不知道特定项目,它只计算队列中未完成的项目),以便queue.join()知道工作已完成。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看