如果設(shè)置一個(gè)線程為守護(hù)線程罗晕,就表示這個(gè)線程并不是必須執(zhí)行的仔掸,在進(jìn)程退出的時(shí)候鸯旁,不用等待這個(gè)線程退出。
如果你的主線程在退出的時(shí)候量蕊,不用等待那些子線程完成铺罢,那就設(shè)置這些線程的daemon屬性。即残炮,在線程開始(thread.start())之前韭赘,調(diào)用setDeamon()函數(shù),設(shè)定線程的daemon標(biāo)志势就。(thread.setDaemon(True))就表示這個(gè)線程“不重要”泉瞻。
如果你想等待子線程完成再退出,那就什么都不用做苞冯。袖牙,或者顯示地調(diào)用thread.setDaemon(False),設(shè)置daemon的值為false舅锄。新的子線程會(huì)繼承父線程的daemon標(biāo)志鞭达。整個(gè)Python會(huì)在所有的非守護(hù)線程退出后才會(huì)結(jié)束,即進(jìn)程中沒有非守護(hù)線程存在的時(shí)候才結(jié)束皇忿。