From 09627e40214a0a02916935e4fe6554b7e8bc2131 Mon Sep 17 00:00:00 2001 From: wenshao Date: Wed, 7 Sep 2011 17:55:01 +0000 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4create=20thread=E8=BF=9B?= =?UTF-8?q?=E8=A1=8Cempty.await=E5=88=A4=E6=96=AD=E7=9A=84=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@686 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../java/com/alibaba/druid/pool/DruidDataSource.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index f620aa2335..9c332decb2 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -680,14 +680,14 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat // 必须存在线程等待,才创建连接 int waitThreadCount = lock.getWaitQueueLength(notEmpty); - if (poolingCount >= waitThreadCount) { - notEmpty.signal(); // 防止信号丢失引起的等待 + // 防止创建超过maxActive数量的连接 + if (activeCount + poolingCount >= maxActive) { empty.await(); continue; } - - // 防止创建超过maxActive数量的连接 - if (activeCount + poolingCount >= maxActive) { + + if (poolingCount >= waitThreadCount) { + notEmpty.signal(); // 防止信号丢失引起的等待 empty.await(); continue; }