python-day33--Process类中的方法及属性

p.daemon = True -->守护进程,守护进程不可以再有子进程,并且主进程死守护进程就死,要写在p.start()之前
p.join() ---> 主进程等子进程执行完 之后再结束---> 等的时间就是执行时间最长的子进程执行的时间
p.terminate()-->强制终止进程p,不会进行任何清理操作,如果p创建了子进程,该子进程就成了僵尸进程,用该方法需要特别小心这种情况。如果p保存了一个锁那么也将不会被释放,进而导致死锁
p.is_alive() -->如果p仍然运行,返回True
p.name -->查看进程的名称
p.pid  -->查看进程的pid
 1 from multiprocessing import Process
 2 import os
 3 import time
 4 def work():
 5     print('%s is working' %os.getpid())
 6     time.sleep(3)
 7 if __name__ == '__main__':
 8     p1=Process(target=work)
 9     p1.start() #初始化1
10 
11     print(p1.name)
12     print(p1.pid)
13     print('基于初始化的结果来继续运行')
14 
15 
16 
17 
18 #结果
19 Process-1
20 7588
21 基于初始化的结果来继续运行
22 7588 is working
View Code
 1 from multiprocessing import Process
 2 import os
 3 import time
 4 def work():
 5     print('%s is working' %os.getpid())
 6     time.sleep(3)
 7 if __name__ == '__main__':
 8     p1=Process(target=work)
 9     p2=Process(target=work)
10     p3=Process(target=work)
11     p1.daemon=True
12     p2.daemon=True
13     p3.daemon=True
14     p1.start() #初始化1
15     p2.start() #初始化2
16     p3.start() #初始化3
17 
18 #    p3.join()
19 #    p1.join()
20 #    p2.join()
21     print('基于初始化的结果来继续运行')
22 
23 
24 不加join结果:
25   基于初始化的结果来继续运行
26 
27 加上join结果:
28  7760 is working
29  1668 is working
30  9628 is working
31  基于初始化的结果来继续运行
32     
View Code
 1 from multiprocessing import Process
 2 import time
 3 def work():
 4     print('%s is working' %os.getpid())
 5     time.sleep(1)
 6 if __name__ == '__main__':
 7     p1=Process(target=work)
 8     p1.start() #初始化1
 9 
10     p1.terminate()
11     time.sleep(3)
12     print(p1.is_alive())
13     print('基于初始化的结果来继续运行')
View Code
原文地址:https://www.cnblogs.com/liuwei0824/p/7428634.html