1. 程式人生 > 實用技巧 >守護程序

守護程序

守護程序

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結束 --> 主程序的程式碼才結束 --> 守護程序結束