如何测量线程等待数据库连接时出现的延迟



假设我有 10 个 deamon 线程的 java 应用程序。

假设我有最多 3 个连接的连接池(例如 c3p0(。

每个线程都在使用数据库。当一个线程正在等待处于 BLOCK 状态的连接时,可能会发生这种情况(当然确实会发生(。

我需要测量总线程延迟,当它们中的每一个都处于 BLOCK 状态等待连接时。

最好的方法是什么?

使用您自己的实现扩展线程并覆盖方法"notify",以便它将"system.currentTimeMilis"保存在某种缓存中 - 您可以使用毫秒参数调用方法来处理每个线程的 notifyTimes。然后在扩展线程中覆盖运行/启动方法并再次获取当前TimeMilis。也获取等待方法的当前时间(再次覆盖,不要忘记在覆盖中调用超级方法(。使用这 3 种类型的线程时间,您应该能够进行基准测试。

最新更新