前言
昨天的面试,让我知道了阅读源码的重要性,今天就手写三种简单Lock来进行JUC的巩固。
代码实现
1、简单的Lock
package com.coolstar.locks;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
public class MyLock1 implements Lock {
private boolean isLock = false;
@Override
public synchronized void lock() {
while(isLock) {
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
isLock = true;
}
@Override
public void lockInterruptibly() throws InterruptedException {
}
@Override
public boolean tryLock() {
return false;
}
@Override
public boolean tryLock(long time, TimeUnit unit) throws InterruptedException {
return false;
}
@Override
public synchronized void unlock() {
isLock = false;
notify();