2012-04-26 30 views
5

可有人好心提出一些解決方案在情況下,我希望得到一個線程的啓動方法如何找到一個Thread的start方法的調用類的名稱使用堆棧跟蹤

例如調用類的名字,如果我開始在一個線程主要的堆棧跟蹤給調用類名稱作爲線程和調用方法名稱運行索引2.請幫助找到調用方類和線程的方法名稱的正確名稱。

+2

請告訴我你用得到使用堆棧跟蹤對象的主叫方的信息有問題嗎? – 2012-04-26 10:14:50

+2

就我所知,你無法做到這一點。它沒有被記錄。你可能會發現父線程,但這並不意味着你會找到調用'Thread.start'的代碼行。 – 2012-04-26 10:19:30

回答

1

看起來你正試圖捆綁跨越多個線程的任務。如果直接啓動線程,可以做的最好的方法是在構造函數中給它一個名稱,然後記錄調用類和方法名以及新線程的名稱。但是,如果您使用ExecutorService,這將不起作用。

更一般應調查使用嵌套診斷上下文讓你綁起來的多線程操作:Logging activities in multithreaded applications