进程方法 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进程