返回

HikariPool源码——工作线程相关工具类详解

见解分享

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的运作机制非常有帮助。