1.什么进程池和线程池:池表示一个容器,本质上就是一个存储进程或线程的列表,帮我们管理了,线程的创建;销毁;以及任务的分配。在保证计算机硬件安全的情况下最大限度的利用计算机,池其实是降低了程序的运行效率 但是保证了计算机硬件的安全(硬件的发展跟不上软件的速度)。

2.使用步骤

#1.创建池子

#2.submit 提交任务

#3.shutdown 可以用于等待所有任务完成后销毁池

进程池的使用

from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
import time,os

# 创建进程池,指定最大进程数为3,此时不会创建进程,不指定数量时,默认为CPU核数
pool = ProcessPoolExecutor(3)

def task():
    time.sleep(1)
    print(os.getpid(),"working..")

if __name__ == '__main__':
    for i in range(10): # 开启10个任务
        pool.submit(task) # 提交任务时立即创建进程

# pool.shutdown()  # 关闭池子( 等待池子中所有的任务执行完毕之后 才会往下运行代码,相当于一阻塞)
print(1)
View Code

相关文章: