【发布时间】:2010-11-27 13:34:54
【问题描述】:
当我使用thread.setDaemon(True) 将python 线程设置为守护进程时,有什么区别?
【问题讨论】:
标签: python multithreading daemon
当我使用thread.setDaemon(True) 将python 线程设置为守护进程时,有什么区别?
【问题讨论】:
标签: python multithreading daemon
守护线程不会阻止应用程序退出。当所有非守护线程(包括主线程)都完成时,程序结束。
因此,一般来说,如果您在后台执行某些操作,您可能希望将线程设置为守护进程,这样您就不必在应用退出之前显式地让该线程的函数返回。
例如,如果您正在编写一个 GUI 应用程序并且用户关闭了主窗口,则程序应该退出。但是,如果你有非守护线程,它就不会。
来自文档:http://docs.python.org/library/threading.html#threading.Thread.daemon
它的初始值是继承自 创建线程;主线程 不是守护线程,因此 在主线程中创建的所有线程 默认为 daemon = False。
整个 Python 程序在什么时候退出 没有存活的非守护线程。
【讨论】: