我正在开发一个python应用程序,其中主线程创建一个特定类的对象,比如x
。
然后它启动一个线程,该线程在该对象x
的一个方法中开始执行。该方法有一个while True:
循环,所以它是无限的。
然后它启动另一个线程,该线程在同一个对象x
的另一个方法中开始执行。此方法还具有while True:
无限循环。
我已经通过调用t1.setDaemon(True)
将这两个线程作为守护进程,但是一旦主线程退出,它似乎都会停止执行。
父线程完成后如何让孩子保持活着? 或者我应该更改我的设计以使用cron作业或进程fork?
答案 0 :(得分:2)
文档说
一个线程可以被标记为"守护程序线程"。这个标志的意义在于,当只剩下守护进程线程时,整个Python程序都会退出。初始值继承自创建线程。可以通过守护程序属性设置标志。
如果要保持程序运行,则必须至少有一个非守护程序线程。