Java synchronized 块

2025 年 3 月 28 日 | 阅读 3 分钟

Java Synchronized 代码块可用于对方法的任何特定资源执行同步。

假设我们的方法中有 50 行代码,但我们只想同步 5 行,在这种情况下,我们可以使用 synchronized 代码块。

如果我们将方法的所有代码都放在 synchronized 代码块中,它将与 synchronized 方法的工作方式相同。

注意事项

  • Synchronized 代码块用于锁定对象的任何共享资源。
  • Synchronized 代码块的作用域小于方法的作用域。
  • Java synchronized 代码块不允许超过一个 JVM 来提供对共享资源的访问控制。
  • 由于 synchronized 关键字的工作速度较慢,系统性能可能会下降。
  • Java synchronized 代码块比 Java synchronized 方法更有效。

语法

Synchronized 代码块示例

让我们看一下 synchronized 代码块的简单示例。

示例

编译并运行

输出

5
10
15
20
25
100
200
300
400
500

使用匿名类的 Synchronized 代码块示例

让我们看一个使用匿名类创建线程的 synchronized 代码块示例。

示例

编译并运行

输出

5
10
15
20
25
100
200
300
400
500

使用 Synchronized 代码块的消息传递示例

让我们看另一个 synchronized 代码块示例,其中我们将消息传递给发送者线程。

示例

编译并运行

输出

Sending a Message: Hola 
Hola Sent
Sending a Message: Welcome to TpointTech website 
Welcome to TpointTech website Sent