先了解一下Python守護線程基本概念。
守護線程:當一個線程被標記為守護線程時,Python程序會在剩下的線程都是守護線程時退出,即等待所有非守護線程運行完畢;守護線程在程序關閉時會突然關閉,可能會導致資源不能被正確釋放的的問題,如:已經打開的文檔等。
非守護線程:通常我們創建的線程默認就是非守護線程,Python程序退出時,如果還有非守護線程在運行,程序會等待所有非守護線程運行完畢才會退出。
threading.Thread(group=None,target=None,name=None,args=(),kwargs={},*,daemon=None)
group:通常默認即可,作為日后擴展ThreadGroup類實現而保留。
target:用于run()方法調用的可調用對象,默認為None。
name:線程名稱,默認是Thread-N格式構成的唯一名稱,其中N是十進制數。
args:用于調用目標函數的參數元組,默認為()。
kwargs:用于調用目標函數的關鍵字參數字典,默認為{}。
daemon:設置線程是否為守護模式,默認為None。
看一下線程對象threading.Thread的方法和屬性。
start():啟動線程。
run():線程執行具體功能的方法。
join(timeout=None):當timeout為None時,會等待至線程結束;當timeout不為None時,會等待至timeout時間結束,單位為秒。
is_alive():判斷線程是否存活。
getName():返回線程名。
setName():設置線程名。
isDaemon():判斷線程是否為守護線程。
setDaemon():設置線程是否為守護線程。
name:線程名。
ident:線程標識符。
daemon:線程是否為守護線程。
我們可以通過實例化threading.Thread來創建線程,也可以使用繼承threading.Thread的子類來創建。
以上內容為大家介紹了Python線程對象,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。