代码之家  ›  专栏  ›  技术社区  ›  krosenvold

在java中有哪些免费工具可用于分析锁争用?

  •  5
  • krosenvold  · 技术社区  · 16 年前

    我需要确定哪些锁在我的应用程序代码中最受欢迎。我可以使用哪些免费工具来确定这一点?

    5 回复  |  直到 16 年前
        1
  •  4
  •   pfranza Tom 'Blue' Piddock    16 年前

    您可以在JDK的bin目录中使用jconsole或jstack。jconsole特别允许您连接到进程并监视线程,包括它们锁定了哪些资源,它可以帮助您识别死锁状态。

        2
  •  3
  •   Scott Stanchfield    16 年前

    您还可以在eclipse的调试器中查看这一点。在“调试”视图中,使用“视图”工具栏上的小三角菜单打开“Java->显示监视器”。

    如果怀疑出现死锁,请暂停应用程序(在“调试”视图中选择该应用程序,然后按“调试”视图工具栏上的“暂停”按钮),如果出现死锁,阻塞线程将变为红色。如果展开这些线程,可以看到锁争用。

        3
  •  2
  •   Kai Huppmann    16 年前

    VisualVM(Java 1.6的一部分)( see )

        4
  •  2
  •   Don Branson marios    16 年前

    JDK有一些内置的支持——在unix下,kill-3进程,在windows下,ctrl-break。这将显示一个完整的线程转储,然后显示检测到的任何死锁。另外,在线程dusmp中,您可以看到哪些线程拥有哪些锁,并将它们相互比较。

        5
  •  2
  •   akarnokd    16 年前

    如果代码是您自己的,您可以创建/查找一个锁实现,该锁实现收集争用统计信息。如果没有,请尝试其他帖子中建议的工具。