07.07自我总结
进程池与线程池
一.进程池与线程池的函数的导入
进程池:from concurrent.futuresimport ProcessPoolExecutor
线程池:from concurrent.futuresimport ThreadPoolExecutor
二.进程池与线程池的定义
1.进程池的定义
pool = ProcessPoolExecutor(3)
- 设置最大进程为3
- 创建进程池,指定最大进程数为3,此时不会创建进程,不指定数量时,默认为CPU和核数
pool.submit(方法,传参)
如果传的是两个值
pool.submit(方法,参数1,参数2)
对于提交对象中有几个常用的方法:
res = pool.submit(方法,参数)
res.result()
result是个阻塞函数,直到子线程任务结束,且返回方法的结果
res.add_done_callback(方法2)
将结果进程执行的结果当一个参数传入方法二中
2.线程池的定义
与进程池相似
3.注意
进程池定义和运行尽量放在main里面,比然可能会发生重复定义进程池
三.使用场景
线程方法相同,且需要重复使用,这个可以用进程池或者线程池,可以减少创建和关闭进程线程是所消耗的资源