gevent queue应用1

 1 # -*- coding:utf-8 -*-
 2 #! /usr/bin/env python
 3 '''
 4 Created on 2014年9月2日
 5 '''
 6 import gevent
 7 from gevent.queue import Queue
 8 import random
 9 from time import time
10 
11 start = time()
12 
13 links = Queue()
14 
15 def downloader(pthread):
16     while not links.empty():
17         link = links.get()
18         gevent.sleep(random.randint(1,3))
19         print("%s: picture %s has been downloaded!" % (pthread,link))
20     print("%s's mm has been downloaded!" % pthread)
21 
22 def getLinks():
23     for i in xrange(1,50):
24         links.put_nowait("http://baidu.com/%s.jpg" % i)
25 
26 gevent.spawn(getLinks).join()
27 
28 gevent.joinall([
29     gevent.spawn(downloader,'pThread1'),
30     gevent.spawn(downloader,'pThread2'),
31     gevent.spawn(downloader,'pThread3'),
32     gevent.spawn(downloader,'pThread4'),
33     gevent.spawn(downloader,'pThread5'),
34     gevent.spawn(downloader,'pThread6'),
35 ])
36 
37 end = time()
38 
39 print("cost of time:",end-start)

 

posted @ 2014-09-02 17:02  阿驹  阅读(554)  评论(0编辑  收藏  举报