使用Map简化并发的复杂度,生产者消费者模型实在看的头疼
参考这篇帖子说明的很清楚
结合极客学院这位老师视频的参考代码如下
from multiprocessing.dummy import Pool as ThreadPool
import requests
import time
urls=[]
#定义网页资源集合
for i in range(1,21):
newpage= 'http://tieba.baidu.com/p/3522395718?pn=' +str(i)
urls.append(newpage)
def getsource(url):
html=requests.get(url).text
return html
time1=time.time()
for i in urls:
getsource(i)
time2=time.time()
print('消耗时间%s'%(str(time2-time1)))
time3=time.time()
pool=ThreadPool(8)
doc=pool.map(getsource,urls)
pool.close()
pool.join()
time4=time.time()
print('消耗时间%s'%(str(time4-time3)))
并行化以后加速真是明显: