首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >死锁线程检查

问死锁线程检查
EN

Stack Overflow用户
提问于 2009-05-19 17:00:56
回答 4查看 857关注 0票数 3

有人能告诉我如何在Java多线程应用程序中找到“多少线程处于死锁状态”吗?找到死锁线程列表的方法是什么?

我听说过线程转储和堆栈跟踪,但我不知道如何实现它。

  • 我还想知道Java 5中为线程化引入了哪些新特性?

请让我知道你的意见和建议。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-19 17:16:40

获得线程转储的方法:

  • 在Linux/UNIX上,ctrl中断(Windows)或ctrl-\,可能是ctrl-4和kill -3
  • jstack和您的进程id (使用jps)
  • jconsole或visualvm
  • 几乎任何调试器

J2SE 5.0中的主要新线程特性(2004年发布,服务寿命结束):

  • java.util.concurrent
  • 新的Java内存模型。
票数 7
EN

Stack Overflow用户

发布于 2009-05-19 17:04:38

在进程id上使用杀害-3

这将将线程转储和线程争用的概述打印到控制台。

票数 2
EN

Stack Overflow用户

发布于 2009-05-19 19:53:34

在您的程序中,ThreadMXBean类有一个方法ThreadMXBean以及用于查询当前线程堆栈跟踪的方法。在Windows中,执行Ctrl+Break将给出堆栈跟踪列表,并指示死锁线程。

除了对Java内存模型进行一些调整以清理一些并发“漏洞”之外,Java 5中最重要的特性是它向程序员公开了比较集(CAS)操作。然后,在此基础上,在平台中提供了大量并发实用程序。确实有很多东西,但它们包括:

  • 并发集合
  • 执行程序,它有效地允许您实现诸如线程池之类的东西。
  • 其他常见的并发结构(队列、锁、屏障)
  • 原子变量

您可能对我在许多Java 5并发特性上编写的教程感兴趣。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/883936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档