python 如何設定守護程序
阿新 • • 發佈:2020-10-31
上一篇文章 介紹 join 在多程序中的作用,本文繼續學習設定守護程序的對程式的影響。(Python大牛可以繞行)
我們通過兩個例子說明
# encoding: utf-8 """ author: [email protected] time: 2019/7/30 11:20 AM func: """ from multiprocessing import Process import os import time def now(): return str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) def func_1(name): print(now() + ' Run child process %s,pid is %s...' % (name,os.getpid())) time.sleep(2) print(now() + ' Stop child process %s,os.getpid())) def func_2(name): print(now() + ' Run child process %s,os.getpid())) time.sleep(4) print(now() + ' hello world!') print(now() + ' Stop child process %s,os.getpid())) if __name__ == '__main__': print ('Parent process %s.' % os.getpid()) p1 = Process(target=func_1,args=('func_1',)) p2 = Process(target=func_2,args=('func_2',)) print now() + ' Process start.' p1.daemon = True #設定子程序p1為守護執行緒 p1.start() p2.start() print now() + ' Process end .'
結果顯示
啟動了子程序 Run child process func_1 但是沒有 func_1 的結束提示。隨著主程序的結束而結束。
if __name__ == '__main__': print ('Parent process %s.' % os.getpid()) p1 = Process(target=func_1,)) print now() + ' Process start.' p2.daemon = True #設定子程序p2為守護執行緒 p1.start() p2.start() print now() + ' Process end .'
結果顯示
啟動了子程序func_1,而func_2 沒有啟動便隨著主程序的結束而結束。
總結
對於程序或者子執行緒設定join() 意味著在子程序或者子執行緒結束執行之前,當前程式必須等待。當我們在程式中執行一個主程序(主執行緒),然後有建立多個子執行緒。主執行緒和子執行緒各自執行。當主執行緒想要退出程式時會檢查子執行緒是否結束。如果我們設定deamon屬性為True ,不管子執行緒是否結束,都會和主執行緒一起結束。
-The End-
以上就是python 如何設定守護程序的詳細內容,更多關於python 守護程序的資料請關注我們其它相關文章!