public class SuspendResumeLock {
public static final SuspendResumeLock FAUX_LOCK = new SuspendResumeLock(false) {
public void acquire() {
}
public void release() {
}
public void suspend() {
}
public void resume() {
}
};
}
提供的一个默认实现,这个实现类啥都不做,具体用到的地方是这儿
通过配置项控制是否开启Suspend
功能。
com.zaxxer.hikari.util.SuspendResumeLock ?
看起来像内部类
就一个内部类,重写了其中的方法,让其什么都不做。有什么不懂的么?
类中首先创建了一个单例空锁,中间没有实现任何方法,这个对象是用在连接池不需要暂停恢复锁时传入的对象。
private static final int MAX_PERMITS = 10000;
信号量最大值为10K
private final Semaphore acquisitionSemaphore;
其实就是在限制连接的数量,如果连接超过10K,那么就会阻塞直到有别的连接断开后释放了信号量。这是控制IO流量的一种常见的方式。
望采纳
单例空锁
加油!