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