1 from multiprocessing import Pool,Process
2 import time,os
3 def Foo(a):#创建函数
4 time.sleep(2)
5 print('in the process:',os.getpid(),os.getppid())
6 return a+100
7
8 def bar(arga):#创建函数
9 print('---->',arga)
10 if __name__ == '__main__':
11 print('父进程ID:',os.getpid())
12 pool = Pool(2)#创建进程池最大容量为2,最多允许2个进程同时运行,参照线程信号量模式
13 for i in range(10):#创建10个进程
14 pool.apply_async(func=Foo,args=(i,),callback=bar)#创建线程,参数1调用函数,参数2设置i为函数FOO参数,参数3为返回函数
15 #参数三为回调函数,将FOO函数的返回值作为参数调用bar函数。
16 #pool.apply(func=Foo,args=(i,),callback=bar)#串行
17 #pool.apply_async(func=Foo,args=(i,),callback=bar)#并行
18
19 pool.close()#关闭
20 #pool.join()#如果没有.join语句,程序不执行就会关闭。这里是个大坑。
from multiprocessing import Pool,Process
import time,os
def Foo(a):#创建函数
time.sleep(2)
print('in the process:',os.getpid(),os.getppid())
return a+100
def bar(arga):#创建函数
print('---->',arga)
if __name__ == '__main__':
print('父进程ID:',os.getpid())
pool = Pool(2)#创建进程池最大容量为2,最多允许2个进程同时运行,参照线程信号量模式
for i in range(10):#创建10个进程
pool.apply_async(func=Foo,args=(i,),callback=bar)#创建线程,参数1调用函数,参数2设置i为函数FOO参数,参数3为返回函数
#参数三为回调函数,将FOO函数的返回值作为参数调用bar函数。
#pool.apply(func=Foo,args=(i,),callback=bar)#串行
#pool.apply_async(func=Foo,args=(i,),callback=bar)#并行
pool.close()#关闭
#pool.join()#如果没有.join语句,程序不执行就会关闭。