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