python中的多進(jìn)程是通過(guò)multiprocessing包來(lái)實(shí)現(xiàn)的,和多線程的threading.Thread差不多,它可以利用multiprocessing.Process對(duì)
象來(lái)創(chuàng)建一個(gè)進(jìn)程對(duì)象。這個(gè)進(jìn)程對(duì)象的方法和線程對(duì)象的方法差不多也有start(),run(),join()等方法,其中有一個(gè)方法不同Thread線程
對(duì)象中的守護(hù)線程方法是setDeamon,而Process進(jìn)程對(duì)象的守護(hù)進(jìn)程是通過(guò)設(shè)置daemon屬性來(lái)完成的。
下面說(shuō)說(shuō)Python多進(jìn)程的實(shí)現(xiàn)方法,和多線程類似
2.Python多進(jìn)程實(shí)現(xiàn)方法一
frommultiprocessingimportProcess
deffun1(name):print('測(cè)試%s多進(jìn)程'%name)if__name__=='__main__':
process_list=[]foriinrange(5):#開啟5個(gè)子進(jìn)程執(zhí)行fun1函數(shù)
p=Process(target=fun1,args=('Python',))#實(shí)例化進(jìn)程對(duì)象
p.start()
process_list.append(p)foriinprocess_list:
p.join()print('結(jié)束測(cè)試')
3.Python多進(jìn)程實(shí)現(xiàn)方法二
還記得python多線程的第二種實(shí)現(xiàn)方法嗎?是通過(guò)類繼承的方法來(lái)實(shí)現(xiàn)的,python多進(jìn)程的第二種實(shí)現(xiàn)方式也是一樣的
frommultiprocessingimportProcess
classMyProcess(Process):#繼承Process類
def__init__(self,name):
super(MyProcess,self).__init__()
self.name=name
defrun(self):print('測(cè)試%s多進(jìn)程'%self.name)if__name__=='__main__':
process_list=[]foriinrange(5):#開啟5個(gè)子進(jìn)程執(zhí)行fun1函數(shù)
p=MyProcess('Python')#實(shí)例化進(jìn)程對(duì)象
p.start()
process_list.append(p)foriinprocess_list:
p.join()print('結(jié)束測(cè)試')
以上內(nèi)容為大家介紹了python如何寫多進(jìn)程,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。