Python主線程和子線程
setDaemon(False)
當(dāng)一個進程啟動之后,會默認產(chǎn)生一個主線程,因為線程是程序執(zhí)行的最小單位,當(dāng)設(shè)置多線程時,主線程會創(chuàng)建多個子線程,在Python中,默認情況下就是setDaemon(False),主線程執(zhí)行完自己的任務(wù)以后,就退出了,此時子線程會繼續(xù)執(zhí)行自己的任務(wù),直到自己的任務(wù)結(jié)束;
案例
importthreading
importtime
defthread():
time.sleep(2)
print('---子線程結(jié)束---')
defmain():
t1=threading.Thread(target=thread)
t1.start()
print('---主線程---結(jié)束')
if__name__=='__main__':
main()
執(zhí)行結(jié)果
---主線程---結(jié)束
---子線程結(jié)束---
setDaemon(True)
當(dāng)我們使用setDaemon(True)時,這是子線程為守護線程,主線程一旦執(zhí)行結(jié)束,則全部子線程被強制終止。
案例
importthreading
importtime
defthread():
time.sleep(2)
print('---子線程結(jié)束---')
defmain():
t1=threading.Thread(target=thread)
t1.setDaemon(True)#設(shè)置子線程守護主線程
t1.start()
print('---主線程結(jié)束---')
if__name__=='__main__':
main()
執(zhí)行結(jié)果
---主線程結(jié)束---#只有主線程結(jié)束,子線程來不及執(zhí)行就被強制結(jié)束
以上內(nèi)容為大家介紹了python培訓(xùn)之什么是主線程,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。