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