python-进程池与线程池,协程
一、进程池与线程池 实现并发的手段有两种,多线程和多进程。注:并发是指多个任务看起来是同时运行的。主要是切换+保存状态。 当我们需要执行的并发任务大于cpu的核数时,我们需要知道一个操作系统不能无限的开启进程和线程,通常有几个核就开几个进程,如果进程开启过多,就无法充分利用cpu多核的优势,效率反而会下降。这个时候就引入了进程池线程池的概念。 池的功能就是限制启动的进程数或线程数 concurent.future模块: concurrent.futures模块提供了高度封装的异步调用接口 ProcessPoolExecutor: 进程池,提供异步调用 p = ProcessPoolExecutor(max_works)对于进程池如果不写max_works:默认的是cpu的数目,默认是4个 ThreadPoolExecutor:线程池,提供异步调用 p = ThreadPoolExecutor(max_works)对于线程池如果不写max_works:默认的是cpu的数目*5 补充: 提交任务的两种方式:# 同步调用:提交完一个任务之后,就在原地等待,等待任务完完整整地运行完毕拿到结...