synchronized参数
时间: 2023-10-18 22:04:47 浏览: 68
在Java中,synchronized关键字可以用于修饰方法或代码块,用于实现线程之间的同步。synchronized关键字可以有两种不同的参数:
1. synchronized方法:当一个方法被synchronized修饰时,该方法在被调用时会自动获取当前对象的锁,执行完毕后释放锁。这意味着在同一时间只能有一个线程执行该方法。
2. synchronized代码块:使用synchronized修饰的代码块,需要一个对象作为锁,只要这个锁被某个线程获取,其他线程就无法进入同步代码块,直到该线程释放锁。可以使用任何对象作为锁,不过建议使用private final修饰的对象,以避免其他线程修改该锁。
例如,以下是使用synchronized方法的示例:
```java
public synchronized void increment() {
count++;
}
```
以下是使用synchronized代码块的示例:
```java
private final Object lock = new Object();
public void increment() {
synchronized(lock) {
count++;
}
}
```
在这个示例中,使用了一个私有的final对象作为锁。在synchronized代码块中,获取了这个对象的锁,保证了线程安全。