Python进程Multiprocessing模块原理解析
先看看下面的几个方法:
- star()方法启动进程,
- join()方法实现进程间的同步,等待所有进程退出。
- close()用来阻止多余的进程涌入进程池Pool造成进程阻塞。
参数:
target是函数名字,需要调用的函数
args函数需要的参数,以tuple的形式传入
用法:
multiprocessing.Process(group=None,target=None,name=None,args=(),kwargs={},*,daemon=None)
写一个的例子:
frommultiprocessingimportPool importos,time defpr(str): print("The"+str+"is%s"%(os.getpid())) time.sleep(1) print("The"+str+"isclose") if__name__=="__main__": print('-------------------------------') print("thecurrentpid:"+str(os.getpid())) #默认为自己电脑的核数 p=Pool(2) foriinrange(5): p.apply_async(pr,args=('xdxd',)) p.close() p.join() print("----------close-----------------")
通过结果可以看出,是2个进程同时启动,同时启动的进程数与pool中设置的数量和自己电脑的核数有关
结果:
------------------------------- thecurrentpid:9562 Thexdxdis9563 Thexdxdis9564 Thexdxdisclose Thexdxdisclose Thexdxdis9563 Thexdxdis9564 Thexdxdisclose Thexdxdisclose Thexdxdis9563 Thexdxdisclose ----------close-----------------
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。