我对将线程设置为守护进程(daemon)的含义有点困惑。
文档中这样描述:
线程可以被标记为“守护进程”。这个标志的意义在于,当只剩下守护进程时,整个Python程序就会退出。初始值从创建线程继承而来。可以通过daemon属性设置这个标志。
我不太确定这与普通线程有什么不同。
这是在说这个程序永远不会结束吗?
def threadfunc():
while True:
time.sleep(1)
threading.Thread(target=threadfunc).start()
即使主线程执行完毕,while循环会立即结束吗?
def threadfunc():
while True:
time.sleep(1)
th = threading.Thread(target=threadfunc)
th.daemon = True
th.start()
我询问这个问题是因为在我的主线程中调用了sys.exit(),但进程一直挂起,而且我可以看到日志中其他线程正在运行。
这是否与在有活动线程的情况下调用sys.exit() 有关?