池和回调函数
池和回调函数 使用线程池和进程池的原因: 减少时间:在池中可以提前开几个线程线程不关闭,程序运行的时候可以直接使用线程,减少线启动和关闭的时间。 减少开销:有大量程序需要处理的时候如果使用多线程去处理,那么会需要开启很多的线程,如果超出CPU+1的数量,那么会造成程序执行效率低下。 但是如果使用线程池和进程池,开启固定的线程和进程来处理,则会减少开销,降低消耗。 concurrent.futures模块 python3,4模块之前进程池使用的是processing模块中的Pool类来实现的,线池threading模块中没有Pool类,如果使用需要开发者自己去编写。但是从python3.4之后的版本 进程和线程池都是通过使用concurrent.futures模块来进行的。 基本的使用: 导入模块:from concurrent_futures import ThreadPoolExecutor/ProcessPoolExecutor 实例化池对象: 线程池:tp = ThreadPoolExecutor() 进程池:pp = ProcessPoolExecutor() 提交任务:tp/pp.submit(func, *args, **kwargs) import time from threading import current_thread from concurrent