问题标签 [jstack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - jstack 100% CPU
所以我一直在试图弄清楚为什么我们的应用程序偶尔会消耗 100% 的 CPU。我已经阅读了几篇非常有用的 stackovertflow 帖子,但我认为为了安全起见,我想获得一些建议......指导......帮助......无论如何。实际上,这也归结为我缺乏查看堆栈跟踪的经验。如果有人能在这里指出可能的罪魁祸首并向我展示这样的指针,我将非常感激,以便我能更好地理解这一点。
值得注意的线程(在我看来)是等待监视器的线程:
java - Java Swing : GUI 冻结 - jstack 解释
我有一个正在使用的 Gui 应用程序,它在串行热敏打印机上打印一张票。当我点击启动此操作的按钮时,我的 GUI 被冻结。我认为那是因为代码是在 EDT 上执行的。我使用 jstack 来确定,但我不明白下面的结果:
有人可以向我解释我在哪里可以看到我的 GUI 由于第一个线程“Thread-12”而被冻结。
其次,“Thread-6”和“Thread-7”之间有什么区别,只要我确定我只运行过这个线程一次。
java - java应用程序死锁但在使用jstack转储线程后解锁
我的 java 应用程序有时会冻结,所以我用 jstack -F 转储线程,但报告显示没有死锁并且应用程序再次响应?有谁知道发生了什么?
我的应用程序使用休眠 4.1.8、码头 9M2、mysql 连接器 5.1.22、c3p0 0.9.2.pre6。线程转储似乎到处都被阻塞:日志文件有点长,所以我在这里上传了它http://pastebin.com/vDCd6Kjb
java - Is it necessary to run jstack -F as root (on linux) and if so why?
Is it necessary to run jstack -F as root (on linux) and if so why?
When trying to jstack -F my own processes I get the following error.
Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process
jstack -F works fine if I run it with sudo.
java - 几乎所有线程都处于 NATIVE 状态时的 ThreadDump 问题
我在我的应用程序中对主机进行了线程转储,其中大多数线程都处于(state = IN_NATIVE)
状态。
在这些情况下,只有几个线程被阻塞:
和
和
我们做了一些HttpConnections
,请求在可配置的时间后超时。当我重新启动主机时,一切恢复正常。
所以,我认为线程应该在某个时候被阻塞。
在 NATIVE 代码中运行的线程指向这里:
我认为这是罪魁祸首。我们在内部使用ImageIO
和Jsoup
进行这些调用的库。
我对阅读线程转储没有太多想法,而且我是新手。但任何帮助将不胜感激。
是否所有本机运行的线程都可能导致问题?我应该如何进行?
谢谢,
java - jstack:“JNI 全局引用”是什么意思?
运行该jstack
工具时,在所有堆栈跟踪之后,最后一行是这样的输出:
What is 'JNI Global reference'这个问题 解释了“JNI Global reference”是什么,但我不明白这个值对 jstack 输出的意义。
那么:这个数字是什么意思,为什么它与 jstack 的输出有关?
java - 解释 jstack 跟踪以跟踪停滞的锁
我使用了 Samurai,我可以看到没有死锁并且有几个线程在等待,但我似乎无法确切地确定哪个锁正在停止进程。谁能帮我吗?
我不是在寻找人们来猜测我的问题是什么,而是关于如何更改代码以更容易追踪问题的更多建议。我完成了第一次发送和接收,然后程序在应该发送第二条消息时停止。我是多线程新手,这是我第一次拉 jstack
根据要求添加代码串行通信类
RobotInterface 类
总结执行 - 我有一个创建 RobotInterface 线程的 for 循环,每个线程都用于包含位串的基因组。此基因组参考保存在候选测试中,该候选测试只是 RobotInterface 和调用线程在完成时发出信号的共享类。
位串由 RobotInterface 使用 TwoWaySerialCommTest 发送给机器人。机器人对其进行评估并返回一个适应度函数,该函数被 SerialReader 解析为浮点数。然后将下一个字符串发送给机器人。
在第一个字符串返回给机器人并且正在发送第二个字符串之后发生锁定。我可以看到第一个字符串到达机器人,但第二个字符串没有。输出如下 -
java - jstack中的对象ID
我在我的系统中遇到了死锁,这里是相隔几分钟的 2 个 jstacks 的摘录
堆栈 1
堆栈 2
在这两个 jstack 中,监视器 ID 相同 0x00007f1ad075d2e8和0x00007f1ad075d390,但对象 ID 不同。
明明是死锁,为什么对象id不一样?他们不应该一样吗?
java - top -H 显示很少出现在 jstack 输出中的线程 ID
我正在尝试调查为什么我的 jboss 占用 600% CPU(在 CentOS 5 上运行)。
我运行top -H
并尝试将结果与jstack
输出进行比较。大多数来自顶部的线程 ID 都出现在 jstack 的输出中,但不幸的是,占用大部分 CPU 的线程并没有在其中列出。
因为输出很长,我在这里只列出一部分。
jstack输出如下
更多堆栈....
的输出中的线程 IDjstack
也出现在 jstack 的输出中,但是CPU 密集型top
最高的线程 ID (1903-1908) 不会出现在 jstack 的输出中。
我认为这些可能是 GC 线程,但我找不到任何证据来证明这一点。
知道为什么我没有看到 jstack 中的所有线程,或者我可以做些什么来查看丢失的线程吗?
java - kill -3 或 jstack :有什么区别?
我想获取在 jboss 服务器上运行的 Web 应用程序的线程转储。
我为我的问题找到了两种解决方案:
- 使用 unix 命令:kill -3
- 使用 JDK 中存在的 jstack 工具。
谁能向我解释这两种方法之间的区别?
提前致谢 !