# encoding: utf-8 __author__ = 'zhanghe' import urllib2 from multiprocessing.dummy import Pool as ThreadPool from tools import time_log urls = [ 'http://www.python.org', 'http://www.python.org/about/', 'http://www.onlamp.com/pub/a/python/2003/04/17/metaclasses.html', 'http://www.python.org/doc/', 'http://www.python.org/download/', 'http://www.python.org/getit/', 'http://www.python.org/community/', 'https://wiki.python.org/moin/', 'http://planet.python.org/', 'https://wiki.python.org/moin/LocalUserGroups', 'http://www.python.org/psf/', 'http://docs.python.org/devguide/', 'http://www.python.org/community/awards/' # etc.. ] @time_log.time_log def work(num=2): # Make the Pool of workers pool = ThreadPool(num) # Open the urls in their own threads # and return the results results = pool.map(urllib2.urlopen, urls) # close the pool and wait for the work to finish pool.close() pool.join() @time_log.time_log def work2(num=2): p = ThreadPool(num) for i in urls: p.apply_async(urllib2.urlopen, args=(i,)) p.close() p.join() if __name__ == '__main__': work(1) work(2) work(4) work(8) work2(1) work2(2) work2(4) work2(8) # æµè¯ç»æï¼ # æ¹æ³workå¼å§æ¶é´ï¼Thu Apr 30 00:26:21 2015 # æ¹æ³workç»ææ¶é´ï¼Thu Apr 30 00:26:46 2015 # æ¹æ³workè¿è¡æ¶é´ï¼25.28S # æ¹æ³workå¼å§æ¶é´ï¼Thu Apr 30 00:26:46 2015 # æ¹æ³workç»ææ¶é´ï¼Thu Apr 30 00:27:04 2015 # æ¹æ³workè¿è¡æ¶é´ï¼18.25S # æ¹æ³workå¼å§æ¶é´ï¼Thu Apr 30 00:27:04 2015 # æ¹æ³workç»ææ¶é´ï¼Thu Apr 30 00:27:10 2015 # æ¹æ³workè¿è¡æ¶é´ï¼5.47S # æ¹æ³workå¼å§æ¶é´ï¼Thu Apr 30 00:27:10 2015 # æ¹æ³workç»ææ¶é´ï¼Thu Apr 30 00:27:15 2015 # æ¹æ³workè¿è¡æ¶é´ï¼5.16S # æ¹æ³work2å¼å§æ¶é´ï¼Thu Apr 30 00:33:56 2015 # æ¹æ³work2ç»ææ¶é´ï¼Thu Apr 30 00:34:24 2015 # æ¹æ³work2è¿è¡æ¶é´ï¼27.42S # æ¹æ³work2å¼å§æ¶é´ï¼Thu Apr 30 00:34:24 2015 # æ¹æ³work2ç»ææ¶é´ï¼Thu Apr 30 00:34:35 2015 # æ¹æ³work2è¿è¡æ¶é´ï¼11.62S # æ¹æ³work2å¼å§æ¶é´ï¼Thu Apr 30 00:34:35 2015 # æ¹æ³work2ç»ææ¶é´ï¼Thu Apr 30 00:34:42 2015 # æ¹æ³work2è¿è¡æ¶é´ï¼6.87S # æ¹æ³work2å¼å§æ¶é´ï¼Thu Apr 30 00:34:42 2015 # æ¹æ³work2ç»ææ¶é´ï¼Thu Apr 30 00:34:53 2015 # æ¹æ³work2è¿è¡æ¶é´ï¼11.10S