8.15并发编程(四)
一、进程池和线程池 1.什么是池 池可以理解是一种容器,它其实是降低了程序的运行效率但是提高了计算机的硬件安全,因为硬件的发展跟不上软件的发展速度 2.池的作用是什么 池的作用就是在保证计算机硬件安全的前提下,最大限度的利用计算机 3.进程池和线程池 进程池:我们所允许创建的最大进程数 线程池:我们在一个进程内所允许创建的最大的线程数 4.注意: 开进程和开线程都会消耗资源,但是两者对比来说开线程所消耗的资源最小,开销最小 进程池和线程池的本质都是在计算机能够承受的范围内最大限度的利用计算机 二、进程池、线程池的创建和异步回调 1.使用方法 from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor #创建池 pool = ThreadPoolExecutor(5) # 5 线程个数,也可以不传,默认是CPU个数乘以5 #pool = ProcessPoolExecutor() # 进程池不传参数,默认是当前cpu的个数 def task(n): print(n) time.sleep() #提交任务:异步提交 # pool.submit(task, 1) 朝线程池提交任务 #回调机制:pool.submit(task, 1).add_done_callback