【问题标题】:How to measure latency which appears when threads are awaiting for db connection?如何测量线程等待数据库连接时出现的延迟?
【发布时间】:2017-04-08 08:09:37
【问题描述】:

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

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

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

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

最好的方法是什么?

【问题讨论】:

    标签: java multithreading database-connection connection-pooling


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 2012-01-01
      • 2016-07-18
      相关资源
      最近更新 更多