如何在主线程退出后保持守护程序线程活动?

时间:2016-05-05 23:50:00

标签: python multithreading python-2.7

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

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

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

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

父线程完成后如何让孩子保持活着? 或者我应该更改我的设计以使用cron作业或进程fork?

1 个答案:

答案 0 :(得分:2)

文档说

  

一个线程可以被标记为"守护程序线程"。这个标志的意义在于,当只剩下守护进程线程时,整个Python程序都会退出。初始值继承自创建线程。可以通过守护程序属性设置标志。

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