1 # -*- coding: utf-8 -*- 2 import time 3 from multiprocessing import Pool 4 def run(fn): 5 #fn: 函數參數是數據列表的一個元素 6 time.sleep(1) 7 print(fn*fn) 8 9 if __name__ == "__main__": 10 testFL = [1,2,3,4,5,6] 11 print ('順序:') #順序執行(也就是串行執行,單進程) 12 s = time.time() 13 for fn in testFL: 14 run(fn) 15 t1 = time.time() 16 print ("順序執行時間:", int(t1 - s)) 17 18 print ('concurrent:') #創建多個進程,並行執行 19 pool = Pool(10) #創建擁有10個進程數量的進程池 20 #testFL:要處理的數據列表,run:處理testFL列表中數據的函數 21 pool.map(run, testFL) 22 pool.close() #關閉進程池,不再接受新的進程 23 pool.join() #主進程阻塞等待子進程的退出 24 t2 = time.time() 25 print ("並行執行時間:", int(t2-t1))
執行結果: