gpt4 book ai didi

java - 如何通过jstack找到阻塞线程的原因?

转载 作者:行者123 更新时间:2023-11-30 04:59:05 24 4
gpt4 key购买 nike

我在我的java应用程序上运行了jstack(在tomcat和ubuntu服务器版本上运行),因为它似乎在一段时间后消耗了大量内存。

所以,使用jstack我发现很多线程似乎被阻塞了:

控制台日志:http://dl.dropbox.com/u/17844821/zeug/threaddumpexception.txt

线程转储:http://dl.dropbox.com/u/17844821/zeug/threaddump.txt

所以,我知道线程被阻塞,但是我如何找出哪个 java 类导致了这种情况,甚至更重要的是:如何强制这些线程终止?

任何帮助将不胜感激。

最佳答案

结果发现jstack生成的threaddump不正确。

我必须做两件事才能获得正确的转储:

  1. 用 sun 原来的 sun-6-jdk 和 sun-6-jre 软件包替换了 OpenJDK
  2. 我修改了 jstack 调用以使用 64 位模式并以 tomcat 用户身份运行它,如下所示:sudo -u tomcat6 jstack -J-d64 -m pid

这给了我一个线程转储,现在看起来是正确的(没有阻塞的线程)。

关于java - 如何通过jstack找到阻塞线程的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7541573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com