synchronized作用域
时间: 2023-10-30 20:58:19 浏览: 83
java内置对象作用域
synchronized 是 Java 中用于实现线程安全的关键字。它可以用于修饰方法或代码块,在多线程环境下保证方法或代码块的原子性操作。
1. 修饰方法:当一个方法被 synchronized 关键字修饰时,一次只能有一个线程访问该方法,其他线程必须等待。这样可以避免多个线程同时访问共享数据导致数据不一致或产生竞态条件的问题。
示例:
```java
public synchronized void method() {
// 线程安全的操作
}
```
2. 修饰代码块:当一个代码块被 synchronized 关键字修饰时,同一时间只能有一个线程执行该代码块内的代码。可以使用任意对象作为锁,多个线程可以通过竞争同一个锁来保证代码块的互斥执行。
示例:
```java
Object lock = new Object();
synchronized (lock) {
// 线程安全的操作
}
```
synchronized 的使用可以确保线程安全,但也可能导致性能下降。因此,在使用 synchronized 时需要根据具体情况进行考虑,避免不必要的同步。
阅读全文