python 的 queue 队列中的任务取出一个执行完后,需要调用 task_done 方法来通知 queue ,不知道这个有什么作用,因为本来 get 方法在从 queue 中取任务时,就会从 queue 中删掉已取出的任务。如果不调用 task_done 会怎么样?比如当 get 取出一个任务后执行完又 put 放回 queue 中的情况。
1
exploitcat Nov 1, 2015
不 task_done 线程退不出来,队列是阻塞的
|
2
Damnever Nov 1, 2015
放入队列的个数要和 task_done 调用次数相等,也就是说你每取出来一个,必须 task_done ,要不然计数不相等, join 的时候就不知道什么时候退出
|
3
lcqtdwj Nov 1, 2015
这是一种同步机制
|