python在同一个线程中多次执行同一方法时,该方法执行耗时较长且每次执行过程及结果互不影响,如果只在主进程中执行,效率会很低,因此使用multiprocessing.Pool(processes=n)及其apply_async()方法提高程序执行的并行度从而提高程序的执行效率,其中processes=n为程序并行执行的进程数

示例代码:

#多次调用的方法

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是异步非阻塞式,不用等待当前进程执行完毕,随时跟进操作系统调度来进行进程切换,即多个进程并行执行,提高程序的执行效率。

    

原创文章,转载请注明出处:http://124.221.219.47/article/apply_async/