DruidDataSource数据库连接池的的核心功能,实际上都离不开ReentrentLock和两个Condition组成的生产者和消费者模型。
比如上图中的创建连接线程和销毁连接线程,通过condition互相通信,联动实现线程池的生产与销毁。当连接池中连接被消耗,触发empty的通知的时候。阻塞在empty上的生产者开始创建连接;创建完成之后,发送notEmpty的sigal信号,触发在notEmpty上的消费者来获取连接进行消费;这是Druid连接池的基本原理。
DruidDataSource数据库连接池的的核心功能,实际上都离不开ReentrentLock和两个Condition组成的生产者和消费者模型。
比如上图中的创建连接线程和销毁连接线程,通过condition互相通信,联动实现线程池的生产与销毁。当连接池中连接被消耗,触发empty的通知的时候。阻塞在empty上的生产者开始创建连接;创建完成之后,发送notEmpty的sigal信号,触发在notEmpty上的消费者来获取连接进行消费;这是Druid连接池的基本原理。