用java实现互锁代码
时间: 2024-09-24 08:09:34 浏览: 28
在Java中,实现互斥(互锁)通常是为了保护共享资源不受并发访问带来的数据竞争。常见的同步机制有synchronized关键字、Lock接口(如ReentrantLock)以及原子变量(Atomic类)。以下是使用`synchronized`关键字的一个简单示例:
```java
public class MutexExample {
private int sharedResource = 0;
// 创建互斥锁
private Object lock = new Object();
public void increment() {
synchronized (lock) { // 锁定对象
sharedResource++;
}
}
public void decrement() {
synchronized (lock) {
sharedResource--;
}
}
// 获取当前值并打印
public void readAndPrint() {
synchronized (lock) {
System.out.println("Current value: " + sharedResource);
}
}
}
```
在这个例子中,`increment()` 和 `decrement()` 方法都会锁定`lock`对象,保证在同一时刻只有一个线程可以进入该同步块修改`sharedResource`。`readAndPrint()`方法也是如此,为了读取和打印资源时的一致性。
阅读全文