gpt4 book ai didi

java - 使用 Thread.stop(Throwable) 强制将运行时异常抛出到线程中是否存在危险?

转载 作者:行者123 更新时间:2023-11-30 03:55:59 25 4
gpt4 key购买 nike

我正在编写一个相当大的多线程应用程序,线程具有许多不同的角色(例如事件处理、指标、网络)。目前,如果存在无法处理的不一致,则会表现为异常。由于确实无法从其中一些错误中恢复,因此我一直将其作为 ApplicationDeathException 类型的运行时异常重新抛出。

任何需要处理关闭的类都会从该异常的 catch block 中调用它,然后重新抛出它以使其在堆栈中向上传播。

我正在考虑以相同的方式通过调用 Thread#stop(Throwable) 来终止所有其他线程。大多数都可以处理突然终止,并且可以在需要关闭逻辑时捕获此异常。他们只会让异常在堆栈中传播,在需要的地方执行关闭逻辑,并最终杀死线程。这种方法是否存在我遗漏的任何隐患?

最佳答案

Thread.stop 已被弃用,因为它不安全(请参阅 Javadoc)。相反,让每个线程监视某种 boolean 标志(请参阅 Java: How to stop thread? 以及 SO 上可能无数的其他线程)。

在这种情况下,我通常会实现某种线程池管理器,负责彻底关闭正在运行的线程。然后,当发生非常糟糕的事情时,您只需通知经理将其关闭即可。

关于java - 使用 Thread.stop(Throwable) 强制将运行时异常抛出到线程中是否存在危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23175316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com