try {
lock.lockInterruptibly();
} catch (InterruptedException e) {
connectErrorCountUpdater.incrementAndGet(this);
throw new SQLException("interrupt", e);
}
如果在多线程中使用,这一块捕获了InterruptException,导致如果线程被interrupt,这一状态就丢失了,线程处理必须针对每个数据库操作中出现的异常来特殊处理。建议在throw之前再次进行interrupt
1条答案
按热度按时间ykejflvf1#
底层使用可重入锁,估计处理起来困难。
可以自己封装一下: