#为什么要有进程池的概念
#效率 #每次开启进程都要创建一个属于这个进程的内存空间 #寄存器 堆栈 文件 #进程过多 操作系统调度进程 ##进程池 #python中的 先创建一个属于进程的池子 #这个池子指定能存放多少个进程 #先将这些进程创建好#更高级的进程池 #n,m #3 三个进程 # +进程 #20 20个进程#超过了五个进程就要用进程池,不要再用子进程了,进程池的效率高#输入输出都非常影响效率
进程池效率测试:
1 import time 2 from multiprocessing import Pool,Process 3 def func(n): 4 for i in range(10): 5 print(n+1) 6 7 8 9 if __name__ == '__main__':10 start = time.time()11 #进程池的代码就三行,执行的时间为t112 pool = Pool(5) #5个进程13 pool.map(func,range(100)) #100个任务14 t1 = time.time() - start15 #多进程的代码多,执行时间为t2,运行结果表明进程池的效率远远大于多进程16 start = time.time()17 p_lst = []18 for i in range(100):19 p = Process(target=func,args=(i,))20 p_lst.append(p)21 p.start()22 for p in p_lst:p.join()23 t2 = time.time() -start24 print(t1,t2)
运行结果: