python在同一个线程中多次执行同一方法时,该方法执行耗时较长且每次执行过程及结果互不影响,如果只在主进程中执行,效率会很低,因此使用multiprocessing.Pool(processes=n)及其apply_async()方法提高程序执行的并行度从而提高程序的执行效率,其中processes=n为程序并行执行的进程数。
import mutiprocessing
#method为多次调用的方法
def method(param):
pass
if __name__ == '__main__':
pool = multiprocessing.Pool(processes=5)
params= ['param1', 'param2', 'param3', 'param4', 'param5']
for param in params:
pool.apply_async(method, args=(param, ))
pool.close()
apply_async是异步非阻塞式,不用等待当前进程执行完毕,随时跟进操作系统调度来进行进程切换,即多个进程并行执行,提高程序的执行效率。