在爬取大量数据的过程中由于数据量很大所以需要调用到诸多线程或进程后才能快速帮助我们处理数据
在Python中方法也很简单,需要先导入线程池与进程池的包
from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
#线程池:一次性开辟一些线程,我们用户直接给线程池提交任务,线程任务的调度交给线程池来完成
#创建一个任务
def fn(name):
for i in range(100):
print(name, i)
if __name__ == '__main__':
#创建线程池
with ThreadPoolExecutor(50) as t: #创建一个50的线程池
for i in range(1000): #创建一个1000的任务
t.submit(fn, name = f"线程{i}") #submit:提交 ;将创建的线程池提交到执行体并赋予名称
print("over!!!")
执行结果展示:
D:\学习软件工具\pycharm\openstack-api\venv\Scripts\python.exe D:/学习软件工具/pycharm/openstack-api/venv/pachong/线程池与进程池.py
线程0线程1 0
线程1 0
线程0 1
线程11
线程0 2
线程0 3
线程0 4
线程0 25
.................略