Python使用进程池
由于进程启动的开销比较大,使用多进程的时候会导致大量内存空间被消耗。为了防止这种情况发生可以使用进程池
进程池中常用方法:
apply() 同步执行(串行) python3已经没有了
apply_async() 异步执行(并行)
terminate() 立刻关闭进程池
join() 主进程等待所有子进程执行完毕。必须在close或terminate()之后。
close() 等待所有进程结束后,才关闭进程池。
例子:
import os import time from multiprocessing import Pool def func(n): print('start func%s'%n,os.getpid()) time.sleep(1) print('end func%s'%n, os.getpid()) if __name__ == '__main__': p = Pool(4) for i in range(10): p.apply_async(func,args=(i,)) p.close() #结束进程池接收任务 p.join() #感知进程池中任务执行结束