hello,
I've been working on threads and queues and I think I have it working well. The 
problem seems to be that when I run a thread via the IDLE it crashes. if I 
simply double click the file it appears to run ok. I'm not sure if I'm doing 
something incorrectly or not. it seems pretty straight forward. my sample code 
is listed below. I'm using Python 2.6.2, and I'm running on Microsoft Vista. 
Any thoughts would be much appreciated. thanks!
Jeff
 
import threading
import Queue
import time, random
WORKERS = 2
 
class Worker(threading.Thread):
    def __init__(self, queue):
        self.__queue = queue
        threading.Thread.__init__(self)
    def run(self):
        while 1:
            item = self.__queue.get()
            if item is None:
                break # reached end of queue
            # pretend we're doing something that takes 10-100 ms
            time.sleep(random.randint(10, 100) / 100.0)
            print "task", item, "finished"
#
# try it
queue = Queue.Queue(0)
for i in range(WORKERS):
    print 'starting'
    Worker(queue).start() # start a worker
for i in range(10):
    print 'putting'
    queue.put(i)
for i in range(WORKERS):
    print 'putting None'
    queue.put(None) # add end-of-queue markers
 


      
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to