假设我在方法内部有以下代码块:
...
synchronized (this) {
this.var = value;
}
...
是否有任何情况会使
synchronized
块引发异常(假设this
,var
和value
具有非null
值)?谢谢!
最佳答案
根据Java Language Specification about the synchronized statement:
执行线程锁定与V关联的监视器。然后执行该块[...]
而Java virtual Machine Specification on Synchronization,它解释了如何使用所提到的监视器,仅讨论了从同步块中引发的异常。因此,不允许synchronized
语句本身引发异常。
因此,在任何情况下都不会引发异常。