您是否可以在程序中打印出代碼中的哪一行以及運行線程所在的方法 - 而不使用visualvm等監視軟件?你是否需要擴展Thread?如何查看線程在代碼中的位置java
4
A
回答
1
您可以撥打電話Thread.getStackTrace()
。它返回一個表示當前StackTrace的StackTraceElement
的數組。記住前幾個元素將會是Thread
中的方法將會很有幫助,所以你可能感興趣的那些元素將在陣列中稍微有些變化。
當然,你需要獲得當前正在運行的Thread
的保持......
Thread.getCurrentThread().getStackTrace()
+0
stackTraceElement將位於[1]而不是[0]位置。 – bestsss 2012-08-05 15:43:35
3
如果這只是快速和骯髒的調試或錯誤報告,你可以做
new Exception().printStackTrace()
如果您想要比這更小一點,可以使用Thread.currentThread().getStackTrace()
來獲取一組StackTraceElement
對象;您可以通過檢查這些來確定當前行號。
2
只需使用Thread.dumpStack()
即可打印堆棧(類似於未捕獲到異常時)。沒有必要創建一個新的例外。
2
使用幾乎所有的日誌框架,支持最多線程組/名稱,類,方法,文件名和行號功能
0
你可以檢查出JDB。 This link顯示了一個使用它來調試併發問題的例子。 This也只是顯示了它的一些基本功能。它相當不錯,我相信它應該已經在你的JAVA_HOME/bin中。
另一種選擇是檢查JUCProfiler,我沒有試過這個,但它看起來很體面。
相關問題
- 1. Java - 查看在線密碼
- 2. 如何在Java中打開和查看包中的代碼
- 3. 如何在Java代碼中設置EditText的位置
- 4. 如何在Mac上查看Netbeans中的Java SE 6源代碼?
- 5. 如何查看在java代碼中導入的包?
- 6. 如何在java代碼中指示父項的中心位置?
- 7. Base64在css中?如何查看代碼
- 8. 查看java源代碼
- 9. 在Java中查找DOM元素的絕對位置的代碼
- 10. 如何使用java代碼來查找我的位置?
- 11. 在java代碼中查找hive-site.xml的位置
- 12. 如何查看Java中內置類的源代碼(例如BigInteger等)?
- 13. 如何在android中查看應用程序的源代碼
- 14. 如何檢查我的代碼在Erlang中的位置?
- 15. 如何查看totalview中的源代碼?
- 16. Java線程的代碼流
- 17. 在視圖控制器中放置通用代碼的位置查看函數?
- 18. 如何查看Hyperledger Fabric內鏈接代碼中的java日誌?
- 19. 如何使用Java代碼查看JTextPane中的段落符號?
- 20. 如何在java代碼中添加當前位置
- 21. 如何在Java代碼中啓動一組線程
- 22. Java線程 - 同步代碼
- 23. 理解Java代碼線程
- 24. Java線程代碼問題
- 25. QR代碼位置檢查
- 26. 你如何檢查哪個線程正在Java中執行代碼?
- 27. 如何動態更改java代碼中的文件位置?
- 28. 如何在線編譯Java代碼?
- 29. 如何在後臺線程中放置代碼
- 30. 查看代碼
*「如何查看線程在代碼中的位置..」** **爲什麼要查看線程在代碼中的位置(使用任意約束)?這個支持什麼程序功能? – 2012-08-04 01:54:54
如果某個線程在網絡呼叫中卡住,並且有很多不同的網絡呼叫,那麼知道哪一個呼叫有幫助 – 2012-08-04 02:04:45
您想做什麼?有沒有你正在努力處理的具體問題,還是出於好奇,這只是一個更普遍的問題? – 2012-08-04 06:11:56