Python守護進程實現(xiàn)過程詳解
這篇文章主要介紹了Python守護進程實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
如果你設置一個線程為守護線程,就表示你在說這個線程是不重要的,在進程退出的時候,不用等待這個線程退出。如果你的主線程在退出的時候,不用等待那些子線程完成,那就設置這些線程的daemon屬性。即在線程開始(thread.start())之前,調(diào)用setDeamon()函數(shù),設定線程的daemon標志。(thread.setDaemon(True))就表示這個線程“不重要”。
如果你想等待子線程完成再退出,那就什么都不用做,或者顯示地調(diào)用thread.setDaemon(False),設置daemon的值為false。新的子線程會繼承父線程的daemon標志。整個Python會在所有的非守護線程退出后才會結(jié)束,即進程中沒有非守護線程存在的時候才結(jié)束。
看下面的例子:
import time import threading def fun(): print "start fun" time.sleep(2) print "end fun" print "main thread" t1 = threading.Thread(target=fun,args=()) #t1.setDaemon(True) t1.start() time.sleep(1) print "main thread end"
結(jié)果:
main thread start fun main thread end end fun
結(jié)論:程序在等待子線程結(jié)束,才退出了。
設置:setDaemon 為True
import time import threading def fun(): print "start fun" time.sleep(2) print "end fun" print "main thread" t1 = threading.Thread(target=fun,args=()) t1.setDaemon(True) t1.start() time.sleep(1) print "main thread end"
結(jié)果:
main thread start fun main thread end
結(jié)論:程序在主線程結(jié)束后,直接退出了。 導致子線程沒有運行完。
守護進程可以通過調(diào)用isAlive(), 來監(jiān)視其他線程是否是存活的。
如果死掉的話就重新建立一個工作線程,啟動起來(這里要注意不能使用原來的線程讓它start(),因為這個線程已經(jīng)結(jié)束了,內(nèi)存中的實例已經(jīng)釋放掉了,所以使用這個方法會報錯)。
#coding=utf-8 import time from threading import Thread class ticker(Thread): def run(self): while True: print time.time() if (time.time() > 1470883000): break pass time.sleep(3) pass pass class moniter(Thread): def run(self): while True: global T if (T.isAlive()): print 't is alive' else : print 't is dead' T = ticker() T.start() print 'checking ' time.sleep(5) pass pass T = ticker() T.start() mo = moniter() mo.start()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實現(xiàn)監(jiān)控遠程主機實時數(shù)據(jù)的示例詳解
這篇文章主要為大家詳細介紹了Python如何使用Socket庫和相應的第三方庫來監(jiān)控遠程主機的實時數(shù)據(jù),比如CPU使用率、內(nèi)存使用率、網(wǎng)絡帶寬等,感興趣的可以了解一下2023-04-04用Python把csv文件批量修改編碼為UTF-8格式并轉(zhuǎn)為Excel格式的方法
有時候用excel打開一個csv文件,中文全部顯示亂碼,然后手動用notepad++打開,修改編碼為utf-8并保存后,再用excel打開顯示正常,本文將給大家介紹一下用Python把csv文件批量修改編碼為UTF-8格式并轉(zhuǎn)為Excel格式的方法,需要的朋友可以參考下2023-09-09關(guān)于pytorch中網(wǎng)絡loss傳播和參數(shù)更新的理解
今天小編就為大家分享一篇關(guān)于pytorch中網(wǎng)絡loss傳播和參數(shù)更新的理解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08