1.开启进程的两种方法
第一种:
from multiprocessing import Process import time def tak(name): print('%s 进程' % name) time.sleep(2) print('%s 子进程 ' % name) if __name__ =='__main__': p1 = Process(target=tak,args=(1,)) # 创建线程 p2 = Process(target=tak,args=(2,)) p3 = Process(target=tak,args=(3,)) p4 = Process(target=tak,args=(4,)) p5 = Process(target=tak,args=(5,)) p1.start() # 向操作系统发送请求执行命令,但是操作系统什么时候执行就是操作系统的事了 p2.start() p3.start() p4.start() p5.start() print('主')
结果:
主 # 先运行的是主进程 1 进程 2 进程 4 进程 3 进程 5 进程 # 这里是会堵塞的,因为上面sleep了2秒,所有子进程都在这里进行堵塞了2秒后再进行打印,这里的结果为什么不是按顺序的,因为执行是操作系统进行执行的,你只能提交请求 1 子进程 2 子进程 4 子进程 3 子进程 5 子进程
第二种: 这里自己写类进行继承Process
from multiprocessing import Process import time class Tak(Process): def __init__(self,name): super().__init__() # 这里要加载Process中的方法 self.name = name def run(self): # 这里必须是run方法 print('%s 进程' % self.name) time.sleep(3) print('%s 子进程' % self.name) if __name__ == '__main__': p1 = Tak('1') # 创建进程直接往自己的类里面进行传值就可以了 p2 = Tak('2') p3 = Tak('3') p4 = Tak('4') p5 = Tak('5') p1.start() p2.start() p3.start() p4.start() p5.start() print('主')