HikariPool源码——工作线程相关工具类详解
2023-11-05 11:27:33
HikariPool源码(五)工作线程以及相关工具类
在本文中,我们将重点探讨HikariPool源码中与工作线程相关的工具类,包括:
- houseKeepingExecutorService
- addConnectionExecutor
- closeConnectionExecutor
这些工具类可以监控连接泄漏或超出最大生命期,对开发人员理解HikariPool的运作机制非常有帮助。
houseKeepingExecutorService
houseKeepingExecutorService是一个计划线程池,用于执行周期性任务,例如监控连接泄漏或超出最大生命期。该线程池的默认大小为1,但也可以通过HikariConfig类的housekeepingThreadCount属性进行配置。
houseKeepingExecutorService会在HikariPool初始化时启动,并在HikariPool关闭时停止。该线程池会定期执行以下任务:
- 检查连接池中的连接数,如果超过了最大连接数,则会关闭多余的连接。
- 检查连接池中的连接的空闲时间,如果超过了最大空闲时间,则会关闭这些连接。
- 检查连接池中的连接的最后使用时间,如果超过了最大生命期,则会关闭这些连接。
addConnectionExecutor
addConnectionExecutor是一个计划线程池,用于执行添加连接的任务。该线程池的默认大小为1,但也可以通过HikariConfig类的addConnectionThreadCount属性进行配置。
addConnectionExecutor会在HikariPool初始化时启动,并在HikariPool关闭时停止。当连接池需要添加连接时,该线程池会执行以下任务:
- 创建一个新的连接。
- 将新连接添加到连接池中。
closeConnectionExecutor
closeConnectionExecutor是一个计划线程池,用于执行关闭连接的任务。该线程池的默认大小为1,但也可以通过HikariConfig类的closeConnectionThreadCount属性进行配置。
closeConnectionExecutor会在HikariPool初始化时启动,并在HikariPool关闭时停止。当连接池需要关闭连接时,该线程池会执行以下任务:
- 将连接从连接池中移除。
- 关闭连接。
总结
在本文中,我们详细分析了HikariPool源码中与工作线程相关的工具类。这些工具类可以监控连接泄漏或超出最大生命期,对开发人员理解HikariPool的运作机制非常有帮助。