Python 队列 - task_done() 的数量
Python queues - number of task_done()
我想知道多线程程序中一个队列完成的任务量(所有线程完成的总和)。找到这个的最好方法是什么?
我注意到:
- 我已经阅读了文档,但似乎没有简单的方法 (https://docs.python.org/3.4/library/queue.html)。
- 队列class的'join'方法表明可以做到这一点,因为这是指调用task_done()方法。
- 'qsize' 方法 returns 队列中当前未处理的项目数(据我了解)- 即与 task_done() 无关。
- 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
我想知道多线程程序中一个队列完成的任务量(所有线程完成的总和)。找到这个的最好方法是什么? 我注意到:
- 我已经阅读了文档,但似乎没有简单的方法 (https://docs.python.org/3.4/library/queue.html)。
- 队列class的'join'方法表明可以做到这一点,因为这是指调用task_done()方法。
- 'qsize' 方法 returns 队列中当前未处理的项目数(据我了解)- 即与 task_done() 无关。
- 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