java - 简单的 Java 同步块(synchronized block)可以抛出异常吗?

标签 java synchronized

假设我在一个方法中有这段代码:

...
synchronized (this) {
    this.var = value;
}
...

是否有任何情况使 synchronized block 抛出异常(假设 thisvarvalue 有非 null 值)?

谢谢!

最佳答案

根据Java Language Specification about the synchronized statement :

The executing thread locks the monitor associated with V. Then the Block is executed [...]

还有 Java virtual Machine Specification on Synchronization ,这解释了如何使用所提到的监视器,只讨论从同步块(synchronized block)中抛出的异常。所以 synchronized 语句本身不允许抛出异常。

因此,在您的情况下,不会出现任何抛出异常的情况。

关于java - 简单的 Java 同步块(synchronized block)可以抛出异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44943618/

相关文章:

java - 非 volatile 变量是否需要同步?

java:一个同步与更多同步围绕相同的代码

java - 使用执行器服务等待守护线程完成迭代

java - 按下按钮即可添加新字段

java jsscrollpane

java - 无法在 Java 中打开文本文件

java - 单例设计模式中的 Synchronized(MyClass.class){ } - 它有什么作用?

javascript - 函数同步和可观察

数组列表的java数组列表

java - 组合类和方法参数化类型