'Set up the thread pool and start num_workers worker threads.
num_workers is the number of worker threads to start initialy.
If q_size > 0 the size of the work request queue is limited and
the thread pool blocks when the queue is full and it tries to put
more work requests in it (see putRequest method).'

def __init__(self, num_workers, q_size=0):

    self.requestsQueue = Queue.Queue(q_size)
    self.resultsQueue = Queue.Queue()
    self.workers = []
    self.workRequests = {}
    self.createWorkers(num_workers)
