05 進程池map方法
阿新 • • 發佈:2019-01-14
true art imp 傳參數 import pen ssi def proc
import time from multiprocessing import Process,Pool # def f1(n): # time.sleep(1) # print(n) #對比多進程和進程池的效率 def f1(n): for i in range(5): n = n + i if __name__ == ‘__main__‘: #統計進程池執行100個任務的時間 s_time = time.time() pool = Pool(4) #裏面這個參數是指定進程池中有多少個進程用的,4表示4個進程,如果不傳參數,默認開啟的進程數一般是cpu的個數 # pool.map(f1,[1,2]) #參數數據必須是可叠代的 pool.map(f1,range(100)) #參數數據必須是可叠代的,異步提交任務,自帶join功能 e_time = time.time() dif_time = e_time - s_time #統計100個進程,來執行100個任務的執行時間 p_s_t = time.time() #多進程起始時間 p_list = [] for i in range(100): p = Process(target=f1,args=(i,)) p.start() p_list.append(p) # p.join() [pp.join() for pp in p_list] p_e_t = time.time() p_dif_t = p_e_t - p_s_t print(‘進程池的時間:‘,dif_time) print(‘多進程的執行時間:‘,p_dif_t) # 結果: # 進程池的時間: 0.40102291107177734 # 多進程的執行時間: 9.247529029846191
05 進程池map方法