Introduction

Provides an easy way to manage a pool of threads and submit and reap tasks run by those threads.

Examples

Generation of random numbers (known count):

import random
from threadpool import ThreadPool

tp = ThreadPool(5)
for i in range(100):
    tp.add(i, random.random)
results = [tp.reap() for i in range(100)]
print("\n".join(map(str, results)))

Notes:

  • pool of 5 threads available to run tasks
  • 100 tasks queued up
  • all 100 tasks are expected and reaped 

Generation of random numbers (unknown count):

import random
from threadpool import ThreadPool

tp = ThreadPool(5)
for i in range(100):
    tp.add(i, random.random)
tp.drain()
results = []
while not tp.is_empty():
    res = tp.reap()
    results.append(res)
print("\n".join(map(str, results)))

Notes:

  • tp.drain() may interrupt the processing of tasks so that the number of completed tasks is not known
  • tp.is_empty() checks for waiting, running, and done tasks
Tags: python
    

Contact

About

Name

ThreadPool

Version

1.3

Requirements

Python

License

BSD-3

Links

Repository