1.守护进程
守护进程会随着主进程的代码执行结束而结束。
语法:进程对象.daemon = True时,表示将进程设置为守护进程,一定在start之前设置。
import time from multiprocessing import Process class MyProcess(Process): def run(self): while True: time.sleep(1) print('我还活着~') if __name__ == '__main__': q = MyProcess() q.daemon = True #将子进程设置为守护进程,在start之前 q.start() for i in range(3): time.sleep(3) print('------主进程------')
结果:
2.结束进程和检查进程是否结束
结束进程p.terminate():结束一个进程不是在执行方法之后立即生效,需要一个操作系统响应的过程。
检验一个进程是否活着的状态p.is_alive():返回True或者False
进程的名字和进程号:p.name(),p.pid()
import time from multiprocessing import Process class MyProcess(Process): def run(self): while True: time.sleep(1) print('我还活着~') if __name__ == '__main__': q = MyProcess() q.daemon = True #将子进程设置为守护进程 q.start() q.terminate() #结束进程,请求操作系统结束进程 # 检验一个进程是否还活着 print(q.is_alive()) #刚刚发出请求,进程还没结束, time.sleep(2) print(q.is_alive()) #两秒之后进程已经被结束 print(q.name) #进程的名字 print(q.pid) #进程号
结果: