python_线程池

一、线程池

实例:

 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')

 

posted @ 2019-11-30 21:55  xmb  阅读(151)  评论(0)    收藏  举报