先把工做写成单参数函数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