当线程在 Synchronized 块内崩溃时,锁会发生什么情况?

2023-11-25

假设 Thread-1 在对象上同步

synchronize(object){
  //statement1
  //statement2
  //statement3
}

如果线程 1 在语句 2 上崩溃,对象上的锁会发生什么情况,发生这种情况时 JVM 会自动释放线程 1 上的锁吗?因为否则,如果 Thread-2 等待对象上的锁被释放并且 Thread-1 崩溃,那么 Thread-2 将永远等待。


它定义在JLS #14.19:

synchronized ( Expression ) Block

如果该块的执行由于任何原因突然完成,则监视器将被解锁,并且同步语句由于相同原因突然完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当线程在 Synchronized 块内崩溃时,锁会发生什么情况? 的相关文章

随机推荐