一、线程池
实例:
1 import threadpool 2 import requests,time,threading 3 from hashlib import md5 4 def down_load_pic(url): 5 req = requests.get(url) 6 m = md5(url.encode()) 7 with open( m.hexdigest()+'.png','wb') as fw: 8 fw.write(req.content) 9 10 url_list = ['http://www.nnzhp.cn/wp-content/uploads/2019/10/f410afea8b23fa401505a1449a41a133.png', 11 'http://www.nnzhp.cn/wp-content/uploads/2019/11/481b5135e75c764b32b224c5650a8df5.png', 12 'http://www.nnzhp.cn/wp-content/uploads/2019/11/b23755cdea210cfec903333c5cce6895.png', 13 'http://www.nnzhp.cn/wp-content/uploads/2019/11/542824dde1dbd29ec61ad5ea867ef245.png'] 14 15 pool = threadpool.ThreadPool(20) #实例化一个线程,启动20个线程 16 reqs = threadpool.makeRequests(down_load_pic,url_list) #自动分配数据 17 for req in reqs: 18 pool.putRequest(req) 19 print(threading.activeCount()) #查看当前线程数 20 print(threading.current_thread()) #查看当前线程 21 pool.wait() #等待 22 print('end')