为什么 Thread.stop() 被弃用,它如何破坏对象监视器一致性?
- 内容介绍
- 相关推荐
本文共计603个文字,预计阅读时间需要3分钟。
Thread.stop() 被标记为 @Deprecated,并非因为它不好用,而是因为它会在任意字节码指令点强制执行 ThreadDeath 异常,直接破坏 JVM,对锁状态和对象一致性造成基本破坏。
Thread.stop() 会强制释放所有已持有的监视器锁
调用 stop() 后,JVM 不等待线程退出临界区,而是让 ThreadDeath 沿调用栈向上抛出,并在每一层自动释放 synchronized 块或方法所持有的监视器锁。
本文共计603个文字,预计阅读时间需要3分钟。
Thread.stop() 被标记为 @Deprecated,并非因为它不好用,而是因为它会在任意字节码指令点强制执行 ThreadDeath 异常,直接破坏 JVM,对锁状态和对象一致性造成基本破坏。
Thread.stop() 会强制释放所有已持有的监视器锁
调用 stop() 后,JVM 不等待线程退出临界区,而是让 ThreadDeath 沿调用栈向上抛出,并在每一层自动释放 synchronized 块或方法所持有的监视器锁。

