Python杀死线程

sha*_*vey 5 python multithreading sleep

我试图在python中杀死一个线程.一个例外是这样做的首选方法,作为线程的run方法通过try的优雅退出:except:pair将允许关闭资源.

我试过:有没有办法在Python中杀死一个线程?,但是指定在代码执行系统调用时不起作用(如time.sleep).有没有办法在另一个线程(或进程中,不要介意)中引发一个异常,它不起作用线程正在执行什么?

Gle*_*ard 4

一般来说,引发异步异常很难正确处理。这是因为,不是具有可能生成异常的单个特定代码点(因此需要测试异常处理),而是可以在任何字节码指令之后生成异常。这使得实现和全面测试异常处理变得更加困难。

也就是说,这是可以做到的,但目前在 Python 中并不安全。在 Python 中异步引发异常是危险的,因为您可能会在异常处理程序期间引发该异常,这将引发另一个异常并阻止正确进行清理。请参阅我的回答:如何限制 Python 中函数调用的执行时间

可以发出取消某些形式睡眠的信号,但 Python 中没有通用的基础设施。您最好避免杀死线程,或者将线程移动到进程在进程中您可以向整个进程发送信号并干净地退出。