以下の2つのメソッドread()
とwrite()
があります。javaメソッドの同期と読み取り/書き込みの相互排他
class Store
{
public void write()
{
// write to store;
}
public string read()
{
// read from store;
}
}
1)Store
オブジェクトはシングルトンです。
2)私は店に書き込むWriter
クラスと同時にストアから読み込むいくつかのReader
クラスを持っています。
私の要件は、ライターが店舗に書いているときに、すべての読者が待つ必要があるということです。すなわち、制御がwrite()
である場合、read()
へのすべての呼び出しをブロックすべきである。これをどのように達成するのですか?私はsynchronize(Store.class)
をwrite()
メソッドで試しましたが、私にとってはうまくいかないようです。
あなたは、クラスオブジェクト( 'synchronized(foo.class)')ではなく、あなたが操作しているインスタンス上で同期します。 – andersoj