进程方法属性总结

进程方法
    1.p.start()        #启动进程
    2.p.run()         #进程启动时运行的方法,是它去调用target指定的函数,自定义类中一定要实现该方法
    3.p.terminate()    #强制终止进程p,不会进行任何清理操作,如果p创建了子进程,该子进程就成了僵尸进程。如果p还保存了一个锁那么也将不会被释放,进而导致死锁
    4.p.is_alive()    #如果p仍然运行,返回True
    5.p.join()        #主线程等待p终止,p.join只能join住start开启的进程,而不能join住run开启的进程
    
进程属性
    1.p.daemon        #默认为False,如果设为True,代表p为后台运行的*守护进程*,当p的父进程终止时,p也随之终止,并且设定为True后,p不能创建自己的新进程,必须在p.start()之前设置
    2.p.name        #进程的名称
    3.p.pid            #进程的pid
    4.p.exitcode     #进程在运行时为None
    5.p.authkey        #进程的身份验证键
    
*守护进程*1.父进程的代码执行结束,守护进程就结束
    2.不允许开启子进程
    3.如果不加join,如果守护进程是在父进程代码的最后位置,那么父进程已经没有代码了,所以守护进程也就无法执行。
#######################################简单示例    
from multiprocessing import Process
import time
def func():
    time.sleep(1)
    print(123)
if __name__ == '__main__':
    p = Process(target=func,)
    p.start()
    p.terminate()# 杀死p进程,让解释器告诉操作系统,请杀掉p进程。
    print('子进程是否还活着?', p.is_alive())
    time.sleep(0.002)
    print('子进程是否还活着?', p.is_alive())
    # 返回一个bool值,如果返回True,代表进程还活着,如果返回False,代表子进程死了

# p.is_alive() 判断p进程是否还活着
# p.terminate() 杀死p进程

猜你喜欢

转载自www.cnblogs.com/god-for-speed/p/11719080.html