开启子进程的两种方式
#方式一:
from multiprocessing import Process # 开启子进程 import time def task(name): print("%s is running" % name) time.sleep(3) print("%s is done" % name) if __name__ == "__main__": #Process(target=task,kwargs={"name":"子进程1"}) # 字典的方式传参 p = Process(target=task,args=("子进程1",)) # 实例化task得到对象p,元组的方式传参 p.start() # 仅仅只是给操作系统发送了一个信号,即操作系统申请内存空间,把父进程的地址空间的数据拷贝给子进程, # 作为子进程运行的初始状态,开始运行之后再去执行task函数的功能 print("主进程")
#方式二: from multiprocessing import Process # 开启子进程 import time class Myprocess(Process): def __init__(self,name): super().__init__() # 如果有用到父类的功能需要重用一下父类的init功能 self.name = name # 这里再定义自己的功能 def run(self): # 固定函数名run print("%s is running" % self.name) time.sleep(3) print("%s is done" % self.name) if __name__ == "__main__": p = Myprocess("子进程1") p.start() # 默认调用的是Myprocess下面的run方法 print("主进程")