Java Lock 加锁
时间: 2024-05-09 21:16:33 浏览: 135
Java 中的锁机制可以通过 `synchronized` 和 `Lock` 两种方式来实现。
使用 `synchronized` 关键字进行加锁,可以使用以下两种方式:
1. 同步方法
在方法前添加 `synchronized` 关键字,即可将整个方法加锁。
```java
public synchronized void method() {
// 方法体
}
```
2. 同步代码块
使用 `synchronized` 关键字修饰一个代码块,只有当线程获得该代码块的锁时,才能执行其中的代码。
```java
public void method() {
synchronized (lockObject) {
// 同步代码块
}
}
```
使用 `Lock` 接口进行加锁,可以使用以下方式:
```java
Lock lock = new ReentrantLock();
public void method() {
lock.lock();
try {
// 加锁代码
} finally {
lock.unlock();
}
}
```
在使用 `Lock` 接口时,需要注意以下几点:
1. 需要手动获取锁和释放锁,需要在 `try-finally` 块中进行操作,确保能够释放锁。
2. 可以使用 `tryLock()` 方法尝试获取锁,该方法会立即返回,如果获取不到锁,则返回 false。
3. 可以使用 `lockInterruptibly()` 方法获取锁,该方法可以响应中断,如果线程被中断,则会抛出 `InterruptedException` 异常。
阅读全文