python 进程池的简单使用方法
回到python,用一下python的进程池。
记得之前面试的时候,面试官问:你知道进程池的默认参数吗? 我没有回答上来,后来才知道,是有默认参数的。下面就看看它的默认参数
1. 不加参数
from multiprocessing.pool import Pool from time import sleep def fun(a): sleep(5) print(a) if __name__ == '__main__': p = Pool() # 这里不加参数,但是进程池的默认大小,等于电脑CPU的核数 # 也是创建子进程的个数,也是每次打印的数字的个数 for i in range(10): p.apply_async(fun, args= (i, )) p.close() p.join() # 等待所有子进程结束,再往后执行 print("end")
2. 加参数5
from multiprocessing.pool import Pool from time import sleep def fun(a): sleep(5) print(a) if __name__ == '__main__': p = Pool(5) # 最多执行5个进程,打印5个数 for i in range(10): p.apply_async(fun, args= (i, )) p.close() p.join() # 等待所有子进程结束,再往后执行 print("end")