如何在Python中终止或终止线程

如何在Python中终止或终止线程,python,multithreading,Python,Multithreading,我想在某些事件中终止python中的线程 例如,我有一个类,该类中有一个必需的函数,例如: class exampleClass: def neccessary_function(self): try: do_something() return except: kill_this_thread() 我有多个线程同时运行,我只想杀死那个特定的线程,而不是所有线程 我不能返回函数或类似

我想在某些事件中终止python中的线程

例如,我有一个类,该类中有一个必需的函数,例如:

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循环中,我会引发该异常,从而结束线程?