Python 多进程(1) 发表于 2018-03-14 | 分类于 Python学习笔记 | 阅读次数: 多进程池 在apply 中,每个进程顺序执行 1234567891011121314151617from multiprocessing import Poolimport os,timemylist = [1,2,3]def f0(): for i in mylist: print('执行进程{}'.format(os.getpid())) time.sleep(2) print(i)if __name__ == '__main__': pool = Pool(2)#创建包含2个进程的进程池 for i in range(2):#每次进入循环后,向进程池中申请一个进程 pool.apply(f0)#apply里面每个进程执行完毕后才执行下一个进程,这个语句相当于直接调用f0() pool.close()#执行完close后不会有新的进程加入到pool,join函数等待所有子进程结束 pool.join()#等待进程运行完毕,先调用close函数,否则会出错 运行结果: 123456789101112执行进程71241执行进程71242执行进程71243执行进程132841执行进程132842执行进程132843 在 apply_async 中,各个进程异步执行 1234567891011121314151617from multiprocessing import Poolimport os,timemylist = [1,2,3]def f0(): for i in mylist: print('执行进程{}'.format(os.getpid())) time.sleep(2) print(i)if __name__ == '__main__': pool = Pool(2)#创建包含2个进程的进程池 for i in range(2):#每次进入循环后,向进程池中申请一个进程 pool.apply_async(f0)#异步执行 pool.close() pool.join() 运行结果: 123456789101112执行进程11860执行进程45521执行进程118601执行进程45522执行进程118602执行进程455233 两个方法的区别: p.apply() 每个任务顺序执行; p.apply_async() 每一个任务都并发执行。 赞赏是对作者最大的支持! 打赏 微信支付 本文作者: gax 本文链接: https://ianxin.github.io/2018/03/14/Python-多进程-1/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!