我有一些创建守护线程的 Python 代码。父线程几乎立即结束,但守护线程仍然继续打印“sleep”。
import threading
import time
def int_sleep():
for _ in range(1, 600):
time.sleep(1)
print("sleep")
def main():
thread = threading.Thread(target=int_sleep)
thread.daemon = True
thread.start()
time.sleep(2)
print("main thread end...")
thread = threading.Thread(target=main)
thread.start()
sys.version:
'3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:19:30) [MSC v.1600 64 bit (AMD64)]'
输出:
sleep
main thread end...
sleep
sleep
sleep
为什么当父线程退出时,Python守护线程没有退出?