を実装するプロキシクラスとしてロックマネージャがありますInvocationHandler
。
このロックマネージャーがDeadLockException
このプロキシオブジェクトを呼び出しているオブジェクトに例外(たとえば)をスローするようにし、呼び出し元がこの例外をキャッチできるようにします。
それはJavaで可能ですか?それがどういうわけかそれを機能させるための最良の方法ではない場合
を実装するプロキシクラスとしてロックマネージャがありますInvocationHandler
。
このロックマネージャーがDeadLockException
このプロキシオブジェクトを呼び出しているオブジェクトに例外(たとえば)をスローするようにし、呼び出し元がこの例外をキャッチできるようにします。
それはJavaで可能ですか?それがどういうわけかそれを機能させるための最良の方法ではない場合
InvocationHandlerを実装する場合は、次のメソッドをオーバーライドします。
@Override
Object invoke(
Object proxy,
Method method,
Object[] args ) throws Throwable {
throw new DeadLockException();
}
ご覧のとおり、このメソッドのシグネチャは、Throwable Exception がスローされる可能性があることを示しています。呼び出し元での単純な try-catch で十分です。
デッドロック検出で必要なロジックは何ですか?
デッドロックはリソース割り当てを指しますが、それはどこにあるのでしょうか?
プロキシが実装するインターフェイスの関連メソッドで DeadLockException を宣言していないようです。呼び出し元は、指定されるインターフェイスの実装がプロキシになることを知りません。インターフェイスで何が行われているだけです。