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()    #感知进程池中任务执行结束

  

原文地址:https://www.cnblogs.com/lucktomato/p/15207056.html