0

我有一个程序,它从一个名为 daemon.py 的 python 脚本开始,这个守护程序脚本启动了 4 个线程,这些线程在程序运行的整个过程中都处于活动状态。

我想使用初始守护程序作为其他线程的看门狗。我在想每个线程在 sqlite 数据库中都有自己的时间,守护进程会倒计时。它的线程作业是重置自己的计时器。如果有任何计时器将其设为 0,则守护程序将重新启动一切。

这是这样做的好方法吗?如果不是,我应该怎么做?

4

1 回答 1

1

您的方法在高层次上似乎是有效的,尽管没有关于 4 个线程的功能的更多细节,很难肯定地说。主线程可以通过修改线程的实例变量来为这4个线程提供指导。您不需要使用数据库作为通信机制。Python 有一些有用的线程特性可以为你解决大部分问题。

此外,听起来您希望线程在一段时间后超时或死亡,然后重新创建。为此,您可以让 4 个线程中的每一个都重置一个实例变量,例如last_active,主线程可以使用该信息对线程进行相应的操作。没有简单的方法可以杀死 python 中的任意线程。我的首选方法是这样的:

def run():
    while not self.kill_requested:
        ...
于 2012-06-13T04:27:15.803 回答