Python 队列 - task_done() 的数量

Python queues - number of task_done()

我想知道多线程程序中一个队列完成的任务量(所有线程完成的总和)。找到这个的最好方法是什么? 我注意到:

  1. 我已经阅读了文档,但似乎没有简单的方法 (https://docs.python.org/3.4/library/queue.html)。
  2. 队列class的'join'方法表明可以做到这一点,因为这是指调用task_done()方法。
  3. 'qsize' 方法 returns 队列中当前未处理的项目数(据我了解)- 即与 task_done() 无关。
  4. python 3.4 的解决方案更可取。

您可以尝试扩展队列 class。像

from queue import Queue

class MyQueue(Queue):

    def __init__(self):
        #In py3, I believe you can just use super()
        #with no args
        super(MyQueue, self).__init__()
        self.completed_count = 0

    def task_done(self):
        self.completed_count += 1
        super(MyQueue, self).task_done()

    def get_task_count(self):
        return self.completed_count