先把工做寫成單參數函數func,而後調用multiprocessing.Pool,設置計算使用的核心數,經過map將參數分配給func進行計算,簡單實現以下。html
from multiprocessing import Pool def func(parameter): ... pool = Pool(4) # set the pool size to 4 pool.map(func, parameter) pool.close() pool.join()
上述代碼使用4個核心進行計算,運行後用top查看進程能夠看到四個相同的Python進程,單個進程CPU佔用率最高100%。這種多進程實現適用於CPU密集型工做。python
多參數函數的並行須要對參數作進一步封裝,能夠參見https://www.rawidn.com/posts/Python-multiprocessing-for-multiple-arguments.html。segmentfault
對於IO密集型工做能夠調用multiprocessing的子庫dummy實現,導入部分以下,其餘代碼不變。函數
from multiprocessing.dummy import Pool
運行時只有一個Python進程,但其CPU佔用率能夠超過100%。post
更詳細的說明能夠參見http://www.javashuo.com/article/p-sxxdkowt-du.html。測試
此外,還能夠經過Parallel Python模塊實現,但目前還沒具體測試,其使用能夠看見http://wiki.jikexueyuan.com/project/python-actual-combat/tutorial-25.html。code