当主线程调用sys.exit()时,守护进程线程会被杀死吗?

时间:2019-02-01 08:39:27

标签: python python-3.x multithreading

根据文档:https://docs.python.org/3/library/threading.html

  

可以将一个线程标记为“守护程序线程”。该标志的重要性在于,仅保留守护程序线程时,整个Python程序都会退出。初始值是从创建线程继承的。可以通过daemon属性或daemon构造函数参数设置该标志。

示例代码:

thread = threading.Thread(target=MultiHandler().network, args=(conn, data), daemon=True)
thread.start()

参考其他许多StackOverflow答案,我不清楚主线程调用sys.exit()时是否强制关闭守护程序线程

1 个答案:

答案 0 :(得分:0)

请参阅zwer发表的评论,

  

程序退出时,其所有子线程都将被杀死。非守护程序的线程将阻止程序退出,从而防止其自身被破坏。 -zwer

简而言之,是的守护进程线程不会停止程序退出,因此它们将在退出时被杀死。