python 进程池

# -*- coding: utf-8 -*-
'''
apply 线程池中的线程串行执行

apply_async 线程池中的线程并行执行
'''

from multiprocessing import Process,Pool
import time,os

def foo(i):
    time.sleep(2)
    print("in process ",os.getpid())
    return i+100

def Bar(arg):
    print('execute done:',arg)
if __name__ == '__main__': 
    
    #进程池中进程的最多个数
    pool = Pool(5)
    
    for i in range(10):
        #callback 是回调函数 , 当foo 执行完成之后,在执行回调函数
        pool.apply_async(func=foo,args=(i,),callback=Bar)
#         pool.apply(func=foo,args=(i,))
        
    print('end')
    pool.close()
    #进程池中进程执行完毕后在关闭,如果注释,那么程序直接关闭
    pool.join()
    
原文地址:https://www.cnblogs.com/gaizhongfeng/p/8041410.html