2013-05-14 39 views
3

我想找到哪個Java線程正在修改的文件。 如果有人知道工具或知道如何監控和獲取線程名稱,請分享。監控文件,以查找哪個線程正在修改文件

謝謝。

+0

有一個叫什麼[WatcherService]的名稱和ID( https://blogs.oracle.com/thejavatutorials/entry/watching_a_directory_for_changes),我不確定它是否可以用於您的目的! – NINCOMPOOP 2013-05-14 07:18:35

+0

感謝您的回覆,但事情是我沒有訪問代碼,這就是爲什麼我問工具。 – rot 2013-05-23 05:13:55

回答

0

我不知道到底爲什麼需要這些信息,但是我beleive有兩種方法。

第一種方式是在Java代碼中,當你創建一個線程,同一個名字創建它。 Thread類中的構造函數&可用於執行相同的操作。如果您的項目中有良好的日誌記錄,那麼您可以記錄輸入代碼的線程名稱以修改該文件。

第二種方法是再次依賴於具有與該名稱的線程。您可以使用java分析器來找出在某個時間點線程正在執行的操作。如果線程太快地修改文件,那將太困難了。但是如果你試圖找到一個線程緩慢修改文件的問題,profiler可能會給你提示。

希望它有幫助!

0

如果文件的修改是你寫的,你可以修改之前使用代碼:

Thread.currentThread().getName(); 
Thread.currentThread().getId(); 

和烈獲得線程