1.多进程的第二种启动方式
import os from multiprocessing import Process # 创建一个自定义类,继承Process类 class MyProcess(Process): # 必须实现一个run方法,run方法中是子进程中执行的代码 def run(self): print('子进程:',os.getpid()) if __name__ == '__main__': print('主进程',os.getpid()) p1 = MyProcess() p1.start() p2 = MyProcess() p2.start()
结果:
2.进程号和进程名
import os from multiprocessing import Process class MyProcess(Process): def run(self): print('子进程:',os.getpid()) print(self.name) #打印进程名 print(self.pid) #打印进程号,这里的进程号和os.getpid的进程号是一样的 if __name__ == '__main__': print('主进程',os.getpid()) p1 = MyProcess() p1.start() p2 = MyProcess() p2.start()
结果:
3.传递参数
from multiprocessing import Process class MyProcess(Process): def __init__(self,arg1,arg2): #使用构造方法接收传递进来的参数 super().__init__() #调用父类的__init__方法 self.arg1 = arg1 #把传进的的参数绑给self self.arg2 = arg2 def run(self): print(self.name) #打印进程名 print(self.pid) #打印进程号,这里的进程号和os.getpid的进程号是一样的 print(self.arg1) print(self.arg2) if __name__ == '__main__': p1 = MyProcess('wdc',1) #传递两个参数 p1.start() p2 = MyProcess('yhf',2) #传递两个参数 p2.start()
结果: