当我将python线程设置为守护进程时,它有什么不同

时间:2009-09-11 16:08:30

标签: python multithreading daemon

使用thread.setDaemon(True)将python线程设置为守护程序时有什么区别?

1 个答案:

答案 0 :(得分:23)

守护程序线程不会阻止应用程序退出。当所有非守护程序线程(包括主线程)完成时,程序结束。

一般来说,如果你在后台做某事,你可能想把线程设置为守护进程,这样你就不必在应用程序退出之前显式地让该线程的函数返回。

例如,如果您正在编写GUI应用程序并且用户关闭主窗口,则程序应该退出。但是如果你有非守护进程线程,它就不会。

来自文档:http://docs.python.org/library/threading.html#threading.Thread.daemon

  

它的初始值是继承自的   创建线程;主线程   因此不是守护程序线程   在主线程中创建的所有线程   默认为daemon = False。

     

整个Python程序何时退出   没有活着的非守护进程线程。