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