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