2007年07月16日 星期一 17:39
ÏÂÃæÕâ¶Î´úÂëÔõôÔËÐеÄʱºò£¬ÔõôÓÐʱºò»á³öÏÖ
Consumer got a value: Producer Finished
Producer adding 17 to queue
17
Consumer Finished
Consumer got a value: Producer Finished
Producer adding 18 to queue
18
Producer Finished
¾ÍÊÇ˵ÔÚprintµÄʱºò£¬Óеã´íÂÒ
# queue_example.py
from Queue import Queue
import threading
import random
import time
# Producer thread
class Producer(threading.Thread):
def __init__(self, threadname, queue):
threading.Thread.__init__(self, name = threadname)
self.sharedata = queue
def run(self):
for i in range(20):
print self.getName(),'adding',i,'to queue'
self.sharedata.put(i)
time.sleep(random.randrange(10)/10.0)
print self.getName(),'Finished'
# Consumer thread
class Consumer(threading.Thread):
def __init__(self, threadname, queue):
threading.Thread.__init__(self, name = threadname)
self.sharedata = queue
def run(self):
for i in range(20):
print self.getName(),'got a value:',self.sharedata.get()
time.sleep(random.randrange(10)/10.0)
print self.getName(),'Finished'
# Main thread
def main():
queue = Queue()
producer = Producer('Producer', queue)
consumer = Consumer('Consumer', queue)
print 'Starting threads ...'
producer.start()
consumer.start()
producer.join()
consumer.join()
print 'All threads have terminated.'
if __name__ == '__main__':
main()
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070716/e6abfd6c/attachment.htm
Zeuux © 2025
京ICP备05028076号