如何在Python中终止或终止线程
我想在某些事件中终止python中的线程 例如,我有一个类,该类中有一个必需的函数,例如:如何在Python中终止或终止线程,python,multithreading,Python,Multithreading,我想在某些事件中终止python中的线程 例如,我有一个类,该类中有一个必需的函数,例如: class exampleClass: def neccessary_function(self): try: do_something() return except: kill_this_thread() 我有多个线程同时运行,我只想杀死那个特定的线程,而不是所有线程 我不能返回函数或类似
class exampleClass:
def neccessary_function(self):
try:
do_something()
return
except:
kill_this_thread()
我有多个线程同时运行,我只想杀死那个特定的线程,而不是所有线程
我不能返回函数或类似的东西,我需要停止线程执行任何操作或终止它。我目前在除此之外的部分:
while True:
time.sleep(300)
但是我觉得这并不是最好的方法。通常认为杀死线程是不安全的,因为它仍然可能占用一些资源,并可能导致死锁 你可以看看,虽然只要你想安全,你的选择只是“当线程准备好的时候请它停止”
我建议您看一看or-这两个API都提供了一种相当简单的取消异步操作的方法。这个问题可能已经有了答案:只是澄清一下-线程是否在某种循环中运行,您希望在某些事件发生时中断?线程运行某些任务如果某个事件发生,它将运行必要的功能。如果必要的函数中存在异常,我想杀死线程@Dandaynew如果您创建了自定义ThreadCancellationException并在必要的函数执行后抛出它会怎么样?@DanDayne为了澄清,在except循环中,我会引发该异常,从而结束线程?