java 使用synchronized锁实现多线程同步
时间: 2024-04-29 19:22:47 浏览: 105
在 Java 中,通过 synchronized 关键字可以实现多线程同步。synchronized 关键字可以用于方法和代码块。
1. synchronized 方法
在方法前加上 synchronized 关键字,就可以保证该方法在同一时刻只能被一个线程执行。例如:
```
public synchronized void method() {
// 代码
}
```
2. synchronized 代码块
在代码块前加上 synchronized 关键字,就可以保证该代码块在同一时刻只能被一个线程执行。例如:
```
public void method() {
synchronized (this) {
// 代码
}
}
```
在 synchronized 代码块中,括号中的对象是锁。如果多个线程使用的是同一个锁,那么它们就会同步执行。如果使用的是不同的锁,那么它们就会异步执行。
需要注意的是,使用 synchronized 关键字会影响程序的性能,因为它会导致线程的阻塞和唤醒。因此,在使用 synchronized 关键字时,应该尽量减少锁的范围,避免锁的竞争和阻塞。
阅读全文