当某个变量设置为true时立即终止线程

时间:2011-08-13 04:03:31

标签: python multithreading

当一些变量值设置为true时如何终止线程?

import threading
class test(threading.Thread):
     def __init__(self):
         self.stopThread = False
         self.start():
     def start(self):
         while not self.stopThread:
              callOtherFunction    //which takes alomst 30 sec to execute
     def stop(self):
         self.stopThread = True

现在的问题是,如果调用start函数并且while循环启动,那么它将在下一次迭代时检查停止条件,当它完成其内部工作时,所以如果调用callOtherFunction则它仍然等待30秒要退出..我想在设置变量时立即终止线程。有可能吗?

1 个答案:

答案 0 :(得分:0)

这个问题在这里得到了回答:

Is there any way to kill a Thread in Python?

最重要的是,如果你可以帮助它,你应该避免以这种方式杀死一个线程。但是,如果必须,可以尝试一些技巧。

另外,为了保证线程安全,您应该self.stopThread一个threading.Event()并使用set()clear()来表示线程何时应停止。