手写不可重入锁
public class LockTest {
Lock lock = new Lock();
public void a() {
lock.lock();
b();
lock.unlock();
}
public void b () {
lock.lock();
System.out.println(".....");
lock.unlock();
}
public static void main(String[] args) {
LockTest test = new LockTest();
test.a();
}
}
class Lock{
private boolean isLocked = false;
public synchronized void lock() {
while(isLocked) {
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
isLocked = true;
}
public synchronized void unlock() {
isLocked = false;
notify();
}
}
