2025年druid数据库连接池原理(druid数据库连接池一直满)

druid数据库连接池原理(druid数据库连接池一直满)1 如果设置了 maxWait 或者构造函数参数传入的为 true 则创建的 ReentrantLoc 为公平锁 否者为非公平锁 2 如果设置了 initialSize gt 1 则会启动是创建 initialSize 个数数据库物理连接到线程池 3 如果没设置 createSchedu 则创建并启动数据库连接创建线程

大家好,我是讯享网,很高兴认识大家。



在这里插入图片描述
讯享网
(1)、 如果设置了maxWait或者构造函数参数传入的为true,则创建的ReentrantLock为公平锁,否者为非公平锁
(2)、 如果设置了initialSize>=1,则会启动是创建initialSize个数数据库物理连接到线程池。
(3)、 如果没设置createScheduler则创建并启动数据库连接创建线程,如果没设置destroyScheduler则创建并启动数据库连接回收线程,如果timeBetweenLogStatsMillis>0则创建logstat线程。



在这里插入图片描述
(1)、 如果当前数据库连接池有可用连接,则直接获取,否者如果设置createScheduler则开启一个新线程去创建物理连接,否者发送发送signal信号唤醒连接创建线程创建数据库物理连接,这种情况有分pollLast和takeLast,区别在于前者设置max
wait超时时间,如果在时间内还没获取链接则返回null,后者则一直等待连接创建。

在这里插入图片描述
(1)、 在调用conn.close时候会回收当前连接到线程池

在这里插入图片描述
(1)、此图createScheduler=null的情况,为null从上面知道在初始化时候会新建
一个数据库连接创建线程。

 
  
讯享网

消费者(获取数据库连接线程):

讯享网

生产者(连接创建线程):

 

生产者(数据库连接回收线程):

讯享网


小讯
上一篇 2025-04-30 23:20
下一篇 2025-04-30 19:10

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/190047.html