Limit number of concurrent threads

Syver Enstad syver-en+usenet at
Tue Sep 24 15:18:28 EDT 2002

Chuck May <cmay4 at> writes:

> I've searching for examples that fit my problem, and I haven't found 
> any.  Most examples I've found look something like this:
>     threads = []
>     for i in range(number_of_tasks):
>         thread.append(thread_for_task)
>     # let the threads run - just wait for shutdown
>     for t in threads:
>         t.join() 
> which whould work fine if I wanted to start all 80 threads at once.
> I've read about the Queue, but I'm not sure if it's what I want, and I
> can't seem to find any good examples on it.

I think Queue would be nice to use, Have a thread (the main thread
perhaps) feed all the table names (or a table object if you please)
into a Queue. 

Set up some worker threads with access to the Queue
(global variable, member). The worker threads should loop something
like this:

while 1:
   queueItem = self._queue.get()

Then you can start your workers.

(You'll have to find out some way to make the workers exit when the
work is done, perhaps putting a number of None's equal to the number
of workers last in the queue and testing for None in the working thread loop.


Vennlig hilsen 

Syver Enstad

More information about the Python-list mailing list