Python-queue.task_done()的用途是什么?
我编写了一个脚本,该脚本具有多个线程(用创建threading.Thread
),该线程从Queue
using中获取URL
queue.get_nowait()
,然后处理HTML。我是多线程编程的新手,无法理解该queue.task_done()
函数的用途。
当Queue
为空时,它将自动返回queue.Empty
异常。所以我不明白每个线程都需要调用该task_done()
函数。我们知道当队列为空时我们已经完成了队列,所以为什么我们需要通知它工作线程已完成工作(与队列无关,因为他们从队列中获得了URL)
?
有人可以给我提供一个代码示例(理想情况下使用urllib
,文件I / O或斐波那契数字以外的其他东西并打印“
Hello”)向我展示如何在实际应用中使用此功能吗?
回答:
Queue.task_done
那里不是为了工人的利益。它在那里得到支持Queue.join
。
如果我给您提供一盒工作任务,我是否在乎何时将所有物品都拆了?
不,我关心 何时 。看着一个空盒子不会告诉我。您和其他5个人可能仍在研究您开箱即用的东西。
Queue.task_done
让工人说出 任务完成的时间
。等待所有工作完成的人Queue.join
将等待,直到进行了足够的task_done
调用为止,而不是在队列为空时。
以上是 Python-queue.task_done()的用途是什么? 的全部内容, 来源链接: utcz.com/qa/434853.html