我正在尝试杀死 python 中的一个线程。异常将是执行此操作的首选方法,因为通过 try: except: 对优雅地退出线程的 run 方法将允许关闭资源。
我试过 :Python 有没有办法杀死一个线程? https://stackoverflow.com/questions/323972/is-there-any-way-to-kill-a-thread-in-python,但指定当代码执行系统调用(如 time.sleep)时 is 不起作用。有没有办法在另一个线程(或进程,不介意)中引发异常,无论线程正在执行什么,该异常都可以工作?
一般来说,引发异步异常很难正确处理。这是因为,不是具有可能生成异常的单个特定代码点(因此需要测试异常处理),而是可能在之后生成异常any字节码指令。这使得实现和全面测试异常处理变得更加困难。
也就是说,这是可以做到的,但目前在 Python 中并不安全。在 Python 中异步引发异常是危险的,因为您可能会引发它在异常处理程序期间,这将引发另一个异常并阻止清理正常进行。请参阅我的回答如何限制Python中函数调用的执行时间 https://stackoverflow.com/questions/366682.
可以发出取消某些形式睡眠的信号,但 Python 中没有通用的基础设施。你最好要么避免杀死线程,要么将线程移动到process,您可以在其中向整个进程发送信号并干净地退出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)