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

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

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('基於初始化的結果來繼續運行')