守护线程说明

在Python文档中它说:

线程可以被标记为“守护线程”。 这个标志的意义在于,只有守护进程线程退出时,整个Python程序才会退出。 初始值是从创建线程继承的。

有没有人对这意味着什么或者一个实际的例子有更清楚的解释,说明你想把线程设置为daemonic


为我澄清:

所以你唯一不会把线程设置为守护进程的是,如果你希望它们在主线程退出后继续运行,


一些线程执行后台任务,例如发送Keepalive数据包,或执行定期垃圾回收等等。 这些仅在主程序运行时才有用,并且一旦其他非守护线程退出就可以关闭它们。

没有守护进程线程,你必须跟踪它们,并告诉它们退出,在你的程序完全退出之前。 通过将它们设置为守护进程线程,您可以让它们运行并忘记它们,并且当程序退出时,任何守护进程线程都会自动终止。


假设您正在制作某种仪表板小部件。 作为其中的一部分,您希望它在邮箱中显示未读邮件数量。 所以你做一个小线程将会:

  • 连接到邮件服务器,询问您有多少条未读邮件。
  • 用更新后的计数信号给GUI。
  • 睡一会儿。
  • 当你的小部件启动时,它会创建这个线程,将其指定为一个守护进程并启动它。 因为它是一个守护进程,所以你不必考虑它; 当你的小部件退出时,线程将自动停止。


    一种更简单的方式来思考它,也许:当主返回时,如果仍有非守护线程仍在运行,你的进程将不会退出。

    一些建议:当涉及线程和同步时,清理关闭很容易出错 - 如果可以避免它,那就这样做。 尽可能使用守护进程线程。

    链接地址: http://www.djcxy.com/p/54783.html

    上一篇: Daemon Threads Explanation

    下一篇: Comprehensive beginner's virtualenv tutorial?