#开启进程方式1 from multiprocessing import Process import time def work(name): print("target %s is running" %name) time.sleep(2) print("target %s is done" %name) if __name__=="__main__": p1=Process(target=work,args=("egon",)) p2=Process(target=work,args=("alex",)) p1.start()#向操作系统发送请求,开启进程 p2.start() print("主进程") ''' 主进程 target egon is running target alex is running target alex is done target egon is done '''
#开启进程方式2 from multiprocessing import Process import time class MyProcess(Process): def __init__(self,name): super().__init__() self.name=name def run(self): print("target %s is running" %self.name) time.sleep(2) print("target %s is done" %self.name) if __name__=="__main__": p1=MyProcess("egon") p2=MyProcess("alex") p1.start()#向操作系统发送请求,开启进程 p2.start() print("主进程") ''' 主进程 target alex is running target egon is running target alex is done target egon is done '''
#join方法[并行]:主进程等待子进程运行 from multiprocessing import Process import time def work(name): print("target %s is running" %name) time.sleep(2) print("target %s is done" %name) if __name__=="__main__": p1=Process(target=work,args=("egon",)) p2=Process(target=work,args=("alex",)) # p1.start()#向操作系统发送请求,开启进程 # p2.start() # p1.join()#主进程等待p1结束 # p2.join() p_list=[p1,p2] for p in p_list: p.start() for p in p_list: p.join() print("主进程") #等待时间为程序运行时间最长的那个程序 ''' target egon is running target alex is running target alex is done target egon is done 主进程 '''
#join方法[串行]:主进程等待子进程运行 from multiprocessing import Process import time #并发,在同一个终端打印 def work(name): print("target %s is running" %name) time.sleep(2) print("target %s is done" %name) if __name__=="__main__": p1=Process(target=work,args=("egon",)) p2=Process(target=work,args=("alex",)) # p1.start()#向操作系统发送请求,开启进程 # p2.start() # p1.join()#主进程等待p1结束 # p2.join() p_list=[p1,p2] for p in p_list: p.start() p.join() print("主进程") #等待时间为程序运行时间最长的那个程序 ''' target egon is running target egon is done target alex is running target alex is done 主进程 '''
#pid,ppid,name from multiprocessing import Process import time import os #并发,在同一个终端打印 def work(): print("parent:%s target %s is running" %(os.getppid(),os.getpid())) time.sleep(2) print("parent:%s target %s is done" %(os.getppid(),os.getpid())) if __name__=="__main__": p1=Process(target=work,name="egon_process") p1.start()#向操作系统发送请求,开启进程 print("进程name: ",p1.name) print("pycharm的Pid:",os.getppid())#pycharm print("主进程Pid:",os.getpid()) print("子进程p1的pid:",p1.pid)#10666 ''' 进程name: egon_process pycharm的Pid: 140659 主进程Pid: 10385 子进程p1的pid: 10727 parent:10385 target 10727 is running parent:10385 target 10727 is done '''
来源:https://www.cnblogs.com/hapyygril/p/12567504.html