嗨,我是Python和多线程编程的新手。我有一个脚本正在运行一些测试步骤。同时,我想创建一个线程,以一定的时间间隔进行轮询,并读取执行过程中是否有任何进程崩溃。我有一个函数可以获取这些信息。我的问题是,当我发现一个进程崩溃时,如何从该线程抛出异常。我当前的线程如下所示:class process_thread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.run_thread = True
def run(self):
while self.run_thread:
if has_any_processes_crashed() == -1:
self.run_thread = False
raise MyStopException("A process has crashed") # This is the problematic line. It is only raised in this thread, not in main thread.
else:
time.sleep(3)
但是问题是,异常只在该线程中而不是在主线程中引发。我想在那里抛出相同的异常并退出脚本。我对这个线程所做的是在开始所有测试步骤之前创建一个对象,并将其设置为守护进程线程。当我的测试步骤完成后,我想在关闭模拟之前终止这个线程。所有这些都是通过:
^{pr2}$
我不认为队列在我的场景中是不可能的,因为我仍然需要在主线程中执行我的测试步骤。在
感谢任何帮助!在