'This must be implemented in a sub class and this function
must be called at the end of the add_task function in
the sub class.
The implementation of this function (in this base class)
starts any threads necessary to fill the pool if it is
not already full.'

def add_task(self):

    for i in xrange((self.thread_count - self.running_threads_count())):
        t = self.thread_type(self.tasks, self.results)
        self.threads.append(t)
        t.start()
