diff --git a/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java index e9a225b596..343ad74163 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java @@ -240,7 +240,7 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements protected DruidDataSourceStatLogger statLogger = new DruidDataSourceStatLoggerImpl(); private boolean asyncCloseConnectionEnable = false; - protected int maxCreateTaskCount = 2; + protected int maxCreateTaskCount = 3; protected ScheduledExecutorService destroyScheduler; protected ScheduledExecutorService createScheduler; diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 147d7e560b..b5267bdf31 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -1762,14 +1762,13 @@ public class DruidDataSource extends DruidAbstractDataSource @Override public void run() { + runInternal(); + } + + private void runInternal() { for (;;) { // addLast - try { - lock.lockInterruptibly(); - } catch (InterruptedException e2) { - break; - } - + lock.lock(); try { // 必须存在线程等待,才创建连接 if (poolingCount >= notEmptyWaitThreadCount) {