进程池

# -*- coding:utf-8 -*- 
# Author:Brownyangyang
from multiprocessing import Process,Pool
import time,os

def Foo(i):
    time.sleep(2)
    print("in process",os.getpid())
    return  i+10  ##这个参数会作为Bar的参数传递给Bar,这个不是很理解

def Bar(arg):
    print("-->exec done:",arg,os.getpid()) ##回调

if __name__ ==  '__main__':
    pool = Pool(processes=5) ##允许进程池同时放入5个进程
    print("主进程",os.getpid())
    for i in range(10):
        pool.apply_async(func=Foo,args=(i,),callback=Bar) #并行
        #pool.apply(func=Foo,args=(i,)) 串行

    print('end')
    pool.close()
    pool.join()

猜你喜欢

转载自www.cnblogs.com/brownyangyang/p/8922773.html