python Pool並行執行


 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))

執行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM