public class Lock {
private volatile boolean isLocked = false;
private Thread lockingThread = null;
public synchronized void lock() throws InterruptedException {
while (isLocked) {
wait();
}
isLocked = true;
lockingThread = Thread.currentThread();
}
public synchronized void unLock() {
if (this.lockingThread != Thread.currentThread()) {
throw new IllegalMonitorStateException("Calling thread has not locked this lock");
}
isLocked = true;
lockingThread = null;
notify();
}
}
一个简单的java锁Lock的实现
最新推荐文章于 2023-10-27 18:41:02 发布
本文介绍了一个简单的自定义锁实现方式,使用了synchronized关键字来确保线程安全,并通过volatile变量来跟踪锁的状态。该锁还实现了等待-通知机制,使得在锁被占用时其他线程能够等待。
170万+

被折叠的 条评论
为什么被折叠?



