目录
步骤1:自定义同步器
package xiancheng.AQSsuo;
import java.util.concurrent.locks.AbstractQueuedSynchronizer;
import java.util.concurrent.locks.Condition;
//重写AQS的方法 - 自定义同步器
public class Mysyn extends AbstractQueuedSynchronizer {
@Override
protected boolean tryAcquire(int acquires) {
if (acquires == 1){
if (compareAndSetState(0, 1)) {
setExclusiveOwnerThread(Thread.currentThread());
return true;
}
}
return false;
}
@Override
protected boolean tryRelease(int acquires) {
if(acquires == 1) {
if(getState() == 0) {
throw new IllegalMonitorStateException();
} setExclusiveOwnerThread(null); setState(0);
return true;
}
return false;
}
protected Condition n