時折デッドロックするアプリケーションがあります (月に 1 回など)。
今、Eclipseデバッガーで実行しているときに、初めてこの状態を再現することができました。
すべてのスレッドが WriteLock が解放されるのを待っているようです。
私が必要としているのは、(200 個の) スレッドのうちのどれがロックを保持しているかを調べる方法です。
しかし、Eclipse でスレッドを一時停止して検査しても結果は得られませんでした。これは、スレッドが手動で中断されたため、表示したい変数にアクセスできないことが Eclipse から通知されるためです。
このデッドロックにもう一度入ることができるかどうかわからないので、アプリケーションを再起動したくありません。
では、ロック ホルダーを見つけるにはどうすればよいでしょうか。
編集:私はすでにjstackを試してスレッドダンプを作成しました。しかし、ロックを待っているスレッドしか見つかりませんが、それを保持しているものはありません。