インデックス |
デッドロックとは 複数のスレッドがリソースをロックしているときに、全てのスレッドが無制限に待ち状態になり、 これをデッドロックと呼びます。 一番シンプルな例ですと、スレッドAがオブジェクトAをロックしている状態で、 オブジェクトBのロックを試みるケースのときに、 その間、他のスレッドBがオブジェクトBをロックした状態で オブジェクトAをロックしようと待機しているケースです。 このケースでは、スレッドAは、オブジェクトB待ちのため、オブジェクトAを決して開放することはありません。 同時に、スレッドBは、オブジェクトAが有効になるのを待っているため、 オブジェクトBをエンドレスで永久にロックしたままになるため、両者とも決して前に進めるはずがありません。 |
wrapper.check.deadlock.interval プロパティ |
wrapper.check.deadlock.action プロパティ |
||||||||||
この[wrapper.
可能なアクションは次のとおりです。
注意JVM を再起動しないようなアクション、例えば[NONE]アクションは、 デッドロックチェックが行われるたびに繰り返し発生しますので、ご注意ください。 複数のアクションを指定する: スペースやカンマで区切ることで、複数のアクションを指定することが可能です。 複数のアクションを指定すると、迅速に指定した順番で続けて実行されます。 次の例では、スレッドダンプを実行して、その後、JVM を再起動します。
|
wrapper.check.deadlock.output プロパティ |
||||||||||||||
この[wrapper.
可能な出力レベルは次のとおりです。
|