Working threads progress

mattia gervaz at gmail.com
Wed Oct 28 19:02:18 EDT 2009


hi all, I have a simple program that uses multiple threads to carry out 
some work. Every threads share the same queue.Queue() (that is 
synchronized) in order to get some data and then carry out the work. 
Suppose I have something like:
q = queue.Queue()
for x in range(100):
    q.put(x)
then I have:
lock = threading.Lock()
d = {}
threads = [Thread(target=do_work, args=(q, lock, d)) for _ in range(5)]
every thread thakes an item in the queue (using .get()) and compute some 
expensive work. Then updates the dictionary using the queue item as a key 
and the result obtained as the value (using the lock before and after the 
dict update).
Now, I would like to know the activity done (e.g. every two seconds) so I 
create another thread that checks the queue size (using .qsize()). Have 
you any suggestion to improve the code?



More information about the Python-list mailing list