私は、JavaでUDPパケットを読み込んでオブジェクトに入れます(基本的に無限ループ)。このオブジェクトは、複数の別々のスレッドでアクセスされますが、同時に満たされているため、これらのgetter/setterはすべて同期メソッドになっています。問題は今、これらのゲッターは、このようなコードを持って、次のとおりです。Java同期オブジェクト?
public synchronized SomeObject exampleGetter() {
if(this.isReceiving)
return oldCachedObject;
else
return currentObject;
}
は明らかに、それは物事の非常に最良の方法はありませんので、どのように私は完全にオブジェクトをロック書き込み方法(異なるものの多く)に取り掛かる必要があります一度に1つのスレッドに移動し、他のスレッド(最初にオブジェクトを作成したスレッドを含む)をブロックしますか?私は同期化されたブロックを見ましたが、私はちょっと混乱しています "ロックオブジェクト"が持っている効果は、その時点でブロックにアクセスするオブジェクトですか?アドバイスをいただければ幸いです。ありがとう!
は[実践でのJava並行処理](http://jcip.net/)を見てみましょう。 – ObscureRobot
google 'プロデューサー/コンシューマーin java' –