由于进程启动的开销比较大,使用多进程的时候会导致大量内存空间被消耗。为了防止这种情况发生可以使用进程池
进程池中常用方法:apply() 同步执行(串行) python3已经没有了apply_async() 异步执行(并行)terminate() 立刻关闭进程池join() 主进程等待所有子进程执行完毕。必须在close或terminate()之后。close() 等待所有进程结束后,才关闭进程池。例子:
import osimport timefrom multiprocessing import Pooldef 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() #感知进程池中任务执行结束