unix和linux下所有进程都会经历僵尸进程状态,将由父进程回收,父进程不死僵尸进程将不会回收。
父进程先死,子进程就成了孤儿进程,孤儿进程由init进程接管。
方式一,使用默认类:
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",))#按位置参数传参 p.start()#给操作系统发送指令,开启子进程 print("主进程")
方式二,自定义类:
from multiprocessing import Process import time class MyProcess(Process): def __init__(self,name): super(MyProcess,self).__init__() self.name=name def run(self): print("%s is running" % self.name) time.sleep(5) print("%s is done" % self.name) if __name__ == "__main__": p=MyProcess("子进程") p.start()
查看进程ID:
import os os.getpid()#查看自己的进程id os.getppid()#查看父进程id
p=Process()
p.pid()