我写了一个脚本,它有多个线程(用它创建threading.Thread)从一个Queueusing中获取URL queue.get_nowait(),然后处理HTML.我是多线程编程的新手,我很难理解queue.task_done()函数的用途.
当Queue为空时,它会自动返回queue.Empty异常.所以我不明白每个线程需要调用该task_done()函数.我们知道我们已经完成了队列的空白,所以为什么我们需要通知它工作线程已经完成了他们的工作(与队列有关,在他们从中获取了URL之后) ?
有人可以给我提供一个代码示例(理想情况下使用urllib,文件I/O,或斐波那契数字以外的其他内容并打印"Hello"),它向我展示了如何在实际应用中使用此函数?