次のように使用するように設計した分散ロック クラスを作成しました。
myLock.lock();
doSomething();
myLock.unlock();
私の現在の実装では、lock() はロックが取得されるまでブロックします。しかし、この実装でいくつかのデッドロックの問題が発生しています。だから私はそれを非同期に書き直したいのですが、Javaでそれを行う方法がわかりません。
このようなものがうまくいくと思います:
myLock.lock(myCallbackFunction);
private void myCallbackFunction(boolean result){
if(result){
doSomething();
mylock.Unlock();
}
}
Javaでこれを行う方法はありますか?
編集 (詳細): 同期実装がデッドロックしている理由は複雑であり、関係ありません。分散ロックは、複数のシステムを持つネットワーク全体でリソースの相互排除を取得しています。本当に私が探しているのは、コールバック関数を受け入れるメソッドを作成する方法だけです。