Python 多进程pool.map()方法的使用
生活随笔
收集整理的這篇文章主要介紹了
Python 多进程pool.map()方法的使用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在python中,只有多進(jìn)程才可以充分利用CPU的資源,適合CPU計(jì)算型任務(wù),其他的就不多說了。這里介紹一個(gè) pool.map()方法,很實(shí)用!
pool.map()
先直接上代碼:
import time from multiprocessing.pool import Pooldef numsCheng(i):return i * 2if __name__ == '__main__':time1 = time.time()nums_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]pool = Pool(processes=5)result = pool.map(numsCheng, nums_list)pool.close() # 關(guān)閉進(jìn)程池,不再接受新的進(jìn)程pool.join() # 主進(jìn)程阻塞等待子進(jìn)程的退出print(result)time2 = time.time()print("計(jì)算用時(shí):", time2-time1)運(yùn)行結(jié)果:
[2, 4, 6, 8, 10, 12, 14, 16, 18] 計(jì)算用時(shí): 0.21639275550842285解釋說明:
1.看到Pool有一個(gè)processes參數(shù),這個(gè)參數(shù)可以不設(shè)置,如果不設(shè)置函數(shù)會跟根據(jù)計(jì)算機(jī)的實(shí)際情況來決定要運(yùn)行多少個(gè)進(jìn)程,我們也可自己設(shè)置,但是要考慮自己計(jì)算機(jī)的性能。
2.map()函數(shù)。需要傳遞兩個(gè)參數(shù),第一個(gè)參數(shù)就是需要引用的函數(shù),第二個(gè)參數(shù)是一個(gè)可迭代對象,它會把需要迭代的元素一個(gè)個(gè)的傳入第一個(gè)參數(shù)我們的函數(shù)中。因?yàn)槲覀兊膍ap會自動將數(shù)據(jù)作為參數(shù)傳進(jìn)去
3.pool()開啟了,不要忘記pool.close() 和 pool.join() 關(guān)閉進(jìn)程池,以及讓主進(jìn)程阻塞等待子進(jìn)程的退出。
總結(jié)
以上是生活随笔為你收集整理的Python 多进程pool.map()方法的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python获取cookies
- 下一篇: python操作redis用法详解