@DrDeprecator (Stuart Marks)在core-libs-dev OpenJDK邮件列表上的消息“ RFR(s):8204243:remove Thread.destroy()和Thread.stop(Throwable) ”是对以下文档的审阅(RFR)请求与JDK-8204243相关联的更改集[“删除Thread.destroy()和Thread.stop(Throwable)”]。 错误报告和邮件列表消息都描述了这两个引用的Thread方法的历史,并解释说这两种方法都没有真正有用的作用。
用于java.lang.Thread的JDK 10 Javadoc API文档显示了Thread类上已弃用的六个方法,其中三个方法已明确标记为要删除。 下表总结了这些不建议使用的Thread方法。
| 从JDK 10开始在java.lang.Thread中弃用的方法 | |||
|---|---|---|---|
| 方法 | 不推荐使用 以来 | 对于 搬走 | JDK 10 状态 |
| countStackFrames() | 1.2 | 是 | 取决于不推荐使用的suspend() |
| 破坏() | 1.5 | 是 | 自启动以来引发NoSuchMethodError ( 从未实施 ) |
| 恢复() | 1.2 | 没有 | “ 仅存在于与suspend() ” |
| 停() | 1.2 | 没有 | “ 这种方法本质上是不安全的。 “ |
| 停止(可抛出) | 1.2 | 是 | 自JDK 8起引发 UnsupportedOperationException |
| 暂停() | 1.2 | 没有 | “ 这种方法...本质上是容易死锁的。 “ |
现在看来,两三个Thread被弃用,标记为删除方法将JDK 11这两种方法去除Thread.destroy()和使用Thread.stop(Throwable的)应JDK 11的完全去除destroy()方法除了抛出NoSuchMethodError外从未做过任何事情,而stop(Throwable)方法除了自JDK 8开始抛出UnsupportedOperationException之外就什么都没有做。
其他参考
- Java线程原始弃用
- 如何杀死Java线程
- 为什么不赞成停止,暂停和恢复线程
- RFR:8204243:删除Thread.destroy()和Thread.stop(Throwable)
- JDK-8204243 [“删除Thread.destroy()和Thread.stop(Throwable)”)
- JDK-8204260 [“删除Thread.destroy()和Thread.stop(Throwable)”)
- JDK-4102667 [“ Thread.countStackFrames()应该是不推荐使用的方法。”]
- JDK-8177680 [“伞:从JDK 11删除终端弃用的API”]
- JDK-8177554 [“伞:从JDK 10中删除终端弃用的API”]
- 是时候停止Thread.stop了吗? ( 再访 )
翻译自: https://www.javacodegeeks.com/2018/06/thread-methods-destroy-stop-removed.html