【问题标题】:How to keep the daemon threads alive after main thread exits?主线程退出后如何保持守护线程存活?
【发布时间】:2016-05-05 23:49:59
【问题描述】:

我正在开发一个 python 应用程序,其中主线程创建一个特定类的对象,比如x

然后它启动一个线程,该线程在此对象x 的方法之一中开始执行。该方法有一个while True: 循环,因此它是无限的。

然后它启动另一个线程,该线程在同一对象x 的另一个方法中开始执行。这个方法还有while True:无限循环。

我通过调用t1.setDaemon(True) 将这两个线程都设置为守护进程,但是一旦主线程退出,它们似乎都会停止执行。

父线程结束后如何让子线程存活? 还是应该更改我的设计以使用 cron 作业或进程分叉?

【问题讨论】:

    标签: python multithreading python-2.7


    【解决方案1】:

    文档说

    可以将线程标记为“守护线程”。这个标志的意义在于,当只剩下守护线程时,整个 Python 程序就退出了。初始值继承自创建线程。该标志可以通过 daemon 属性设置。

    如果你想保持你的程序运行,你必须至少有一个非守护线程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-08
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      相关资源
      最近更新 更多