当我的Java应用程序冻结时,我有一个罕见的问题。现在我可以在NetBeans中以调试模式重现它。所以它现在保持冻结状态,但我不知道如何在代码中找到死锁,以及在哪些线程中。 callstack窗口是空的,线程截图被附加。 我该怎么做才能在代码中找到问题?如何使用NetBeans查找死锁?
0
A
回答
2
为了定位僵局,你必须采取一些连续的线程转储。当你比较它们时,你会看到踏板在哪里等待 - 这是你的死锁。
您可以使用jstack(这应该是你的JDK安装的一部分)采取线程转储或者相反,如果你使用Linux,你可以使用kill -3 PID
0
在NetBeans中调用“调试 - >检查死锁”(菜单栏)
相关问题
- 1. 如何找到死锁?
- 2. 如何使用NetBeans删除Java代码中的死锁
- 3. 找不到死锁
- 4. C# - 如何避免使用TcpClient死锁?
- 5. 如何使用Android看门狗找到死锁位置?
- 6. 死锁在查询
- 7. 如何在UNIX上实际查找进程的死锁原因?
- 8. 如何杀死锁定的mysql查询
- 9. 查找和使用在NetBeans
- 10. 帮我找到死锁
- 11. 使用锁表时InnoDB死锁
- 12. 使用Thread.Sleep解决锁定死锁
- 13. 如何在concurrent.futures.ThreadPoolExecutor中使用不会导致死锁的锁?
- 14. 如何在postgresql中使用咨询锁时避免死锁
- 15. 在SQL中使用双重检查锁定的死锁
- 16. 使用nUnit测试死锁
- 17. 使用spin_lock和spin_lock_irqsave,死锁?
- 18. 使用Jconsole分析死锁
- 19. 使用DBI检测死锁
- 20. 使用HttpWebRequest的死锁
- 21. Postgresql锁死锁
- 22. 如何克服死锁
- 23. System.out.format如何防止死锁?
- 24. RMI如何发生死锁?
- 25. 如何避免mysql死锁?
- 26. 如何调试死锁?
- 27. 死锁线程检查
- 28. 查找失败的请求和进入死锁的查询
- 29. 查找“死码”
- 30. 死锁
您应该连续几次线程转储,然后您可以比较它们并查看线程正在等待的位置 - 存在您的死锁 – 2015-02-11 14:22:34
以及如何创建这些线程转储? – Serg 2015-02-11 14:28:40
http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstack.html或'kill -3 PID' on linux也是一个选项 – 2015-02-11 14:51:30