有人可以告诉我如何在Java多线程应用程序中找出“有多少线程处于死锁状态”?找到死锁线程列表的方法是什么?死锁线程检查
我听说过Thread Dump和Stack Traces,但我不知道如何实现它。
- 我也想知道在Java 5中为线程引入了哪些新功能?
请让我知道您的意见和建议。
有人可以告诉我如何在Java多线程应用程序中找出“有多少线程处于死锁状态”?找到死锁线程列表的方法是什么?死锁线程检查
我听说过Thread Dump和Stack Traces,但我不知道如何实现它。
请让我知道您的意见和建议。
获得线程转储方式:
kill -3
jstack
和您的进程ID(使用jps
)jconsole
或visualvm
主要的新线程特性(释放2004年,在退出服务生命周期):
java.util.concurrent
非常感谢汤姆。 – 2009-05-19 18:41:17
使用kill -3的进程ID
这将打印到控制台的线程转储和线程争的概述
谢谢!非常感谢。 – 2009-05-19 17:09:15
从你的程序内,则ThreadMXBean类有一个方法findMonitorDeadlockedThreads(),以及用于查询线程的当前堆栈跟踪方法。在Windows中的控制台中,通过Ctrl + Break向您提供堆栈跟踪列表并指示死锁的线程。除了对整理了一些并发“漏洞”的Java内存模型进行一些调整之外,Java 5中最重要的特性是它向程序员公开了比较和设置(CAS)操作。然后,在这个平台上提供了大量的并发实用程序。有真的东西一大堆,但它们包括:
您可能感兴趣的一些教程,我已经写了很多的Java 5 concurrency features的。
如果您想了解Java 5中的新并发功能,您可能会比获得Brian Goetz(Brian Goetz和许多设计Java 5并发库的共同作者)的副本Java Concurrency in Practice差很多。它既具有高度的可读性和权威性,又结合了实例和理论。
的executive summary of the new concurrent utilities如下:
这是如何回答问题的? – 2013-02-20 18:46:42
事实证明,这几乎是http://stackoverflow.com/questions/217113/deadlock-in-java的重复。 – 2009-05-19 17:15:36