进程池与线程池

07.07自我总结

进程池与线程池

一.进程池与线程池的函数的导入

进程池:from concurrent.futures import ProcessPoolExecutor

线程池:from concurrent.futures import 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里面,比然可能会发生重复定义进程池

三.使用场景

线程方法相同,且需要重复使用,这个可以用进程池或者线程池,可以减少创建和关闭进程线程是所消耗的资源

原文地址:https://www.cnblogs.com/pythonywy/p/11146730.html