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語句,程序不執行就會關閉。