0

我有一个运行 1m9s 的多线程应用程序(有 56 个并发线程)。争用的 JFR 屏幕截图如下所示。我不清楚的是:

  1. 计数字段表示什么?Lock 被获取的次数?
  2. 平均值表示什么?Duration (= count * average) 是如何大于应用程序的总执行时间的?

在此处输入图像描述

谢谢,

4

1 回答 1

2

如果我没记错的话,您正在查看的选项卡显示了线程被阻塞等待按类分组的每个锁的次数(即,它在这里将锁的多个实例计算为相同的)。您可能会看到累积持续时间长于应用程序的总运行时间的原因是它计算了每个线程的等待时间。由于您有 56 个线程在运行(假设它们在应用程序的整个运行时运行),因此可以在一个特定锁上阻塞的最长时间约为 64 分钟 (69s*56)。

于 2018-11-22T10:24:14.957 回答