我试图在python中杀死一个线程.一个例外是这样做的首选方法,作为线程的run方法通过try的优雅退出:except:pair将允许关闭资源.
我试过:Is there any way to kill a Thread in Python?,但是指定在代码执行系统调用时不起作用(如time.sleep).有没有办法在另一个线程(或进程中,不要介意)中引发一个异常,它不起作用线程正在执行什么?
最佳答案
通常,提高异步异常很难正确处理.这是因为,可以生成异常的单个特定代码点 – 而不是需要测试异常处理的地方 – 而不是在任何字节码指令之后生成异常.这使得实现和完全测试异常处理变得更加困难.
也就是说,它可以完成 – 但是,目前,在Python中并不安全.在Python中异步引发异常是危险的,因为您可能会在异常处理程序期间引发它,这将引发另一个异常并防止正常发生清理.请参阅我在How to limit execution time of a function call in Python的回答.
有可能发出某些形式的睡眠信号要取消,但在Python中没有通用的基础设施.你最好避免杀死一个线程,或者将线程移动到一个进程,在那里你可以向整个进程发送信号并干净地退出.