如何使用ReentrantLock实现线程同步?
时间: 2024-03-08 15:44:13 浏览: 81
ReentrantLock是Java中提供的一种可重入锁,可以用于实现线程同步。下面是使用ReentrantLock实现线程同步的步骤:
1. 创建一个ReentrantLock对象:可以通过`ReentrantLock lock = new ReentrantLock();`来创建一个ReentrantLock对象。
2. 在需要进行线程同步的代码块前调用`lock()`方法获取锁:通过调用`lock.lock()`方法来获取锁,如果锁已经被其他线程获取,则当前线程会被阻塞,直到获取到锁为止。
3. 在代码块执行完毕后调用`unlock()`方法释放锁:在代码块执行完毕后,需要调用`lock.unlock()`方法来释放锁,以便其他线程可以获取到锁并执行相应的代码。
下面是一个使用ReentrantLock实现线程同步的示例代码:
```java
import java.util.concurrent.locks.ReentrantLock;
public class ThreadSyncExample {
private static ReentrantLock lock = new ReentrantLock();
public static void main(String[] args) {
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
try {
lock.lock();
// 执行需要同步的代码块
} finally {
lock.unlock();
}
}
});
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
try {
lock.lock();
// 执行需要同步的代码块
} finally {
lock.unlock();
}
}
});
thread1.start();
thread2.start();
}
}
```
阅读全文