解决Java多线程同步问题:互斥锁实例
在Java中,互斥锁是一种同步原语,用于保护共享资源免受并发访问的影响。当一个线程获得一个互斥锁的锁定时,其他线程将无法获得该锁,直到第一个线程释放锁。
以下是一个互斥锁(独占锁)的简单实例:
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class MutexExample {
private final Lock lock = new ReentrantLock();
public void synchronizedMethod() {
try {
// 获取锁
lock.acquire();
// 在获得锁后,你可以执行共享资源的操作
System.out.println("Synchronized method is running...");
// 释放锁
lock.release();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
MutexExample example = new MutexExample();
new Thread(() -> example.synchronizedMethod())).start();
}
}
在这个例子中,synchronizedMethod()
是一个同步方法,它会获取并释放一个互斥锁。在主线程的main()
函数中,我们创建了一个线程来执行这个同步方法,这样就实现了多线程之间的互斥控制。
还没有评论,来说两句吧...