デッドロック

プロセス内でデッドロックが発生していると、スレッドダンプに次のようなメッセージが表示されます。

Found one Java-level deadlock:
=============================
"Thread-21":
 waiting to lock monitor 0x0c3ce154 (object 0x04487e78, a java.lang.Object),
 which is held by "Thread-20"
"Thread-20":
 waiting to lock monitor 0x0c3cdf94 (object 0x04487e80, a java.lang.Object),
 which is held by "Thread-21" 

これらは、特定のスレッド間でデッドロックが発生していることを示しています。上記の例では、スレッド名 Thread-20、Thread-21 を持つスレッドがその対象です。

上記メッセージの後にはさらにそれぞれのスレッドスタックが表記されていますので、それがアプリケーションコード呼び出しのスレッドである場合、スレッドスタックの内容を参考にアプリケーションロジックを修正します。


関連情報