守護程序
阿新 • • 發佈:2020-07-23
守護程序
p.daemon = True
主程序會等待所有的子程序結束,是為了回收子程序的資源
守護程序會等待主程序的程式碼執行結束之後再結束,而不是等待整個主程序結束.
主程序的程式碼什麼時候結束,守護程序就什麼時候結束,和其他子程序的執行進度無關
import time from multiprocessing import Process def son1(): while True: print('--> in son1') time.sleep(1) def son2(): # 執行10s for i in range(10): print('in son2') time.sleep(1) if __name__ == '__main__': # 3s p1 = Process(target=son1) p1.daemon = True # 表示設定p1是一個守護程序 p1.start() p2 = Process(target=son2,) p2.start() time.sleep(3) print('in main')
import time from multiprocessing import Process def son1(): while True: print('--> in son1') time.sleep(1) def son2(): # 執行10s for i in range(10): print('in son2') time.sleep(1) if __name__ == '__main__': # 3s p1 = Process(target=son1) p1.daemon = True # 表示設定p1是一個守護程序 p1.start() p2 = Process(target=son2,) p2.start() time.sleep(3) print('in main') p2.join() # 等待p2結束之後才結束 # 等待p2結束 --> 主程序的程式碼才結束 --> 守護程序結束