コード例 #1
0
ファイル: utils.py プロジェクト: jusbrasil/nydus
class ThreadPool(object):
    def __init__(self, workers=10):
        self.queue = Queue()
        self.workers = []
        self.tasks = []
        for worker in xrange(workers):
            self.workers.append(Worker(self.queue))

    def add(self, ident, func, args=None, kwargs=None):
        if args is None:
            args = ()
        if kwargs is None:
            kwargs = {}
        task = (ident, func, args, kwargs)
        self.tasks.append(ident)
        self.queue.put_nowait(task)

    def join(self):
        for worker in self.workers:
            worker.start()

        results = defaultdict(list)
        for worker in self.workers:
            worker.join()
            for k, v in iteritems(worker.results):
                results[k].extend(v)
        return results
コード例 #2
0
ファイル: utils.py プロジェクト: jusbrasil/nydus
 def __init__(self, workers=10):
     self.queue = Queue()
     self.workers = []
     self.tasks = []
     for worker in xrange(workers):
         self.workers.append(Worker(self.queue))