次の方法で共有


ReaderWriterLock

ReaderWriterLock を使用すると、複数のスレッドが同時に 1 つのリソースを読み出せますが、リソースに書き込むためには、排他的なロックを待機する必要があります。

アプリケーションでは、ReaderWriterLock を使用して、リソースを共有しているスレッドの協調的な同期をとることができます。この場合、ロックは ReaderWriterLock 自体によって制御されます。他のスレッド同期機構と同様に、ReaderWriterLock を回避するスレッドがないようにすることが必要です。

別の方法として、リソースをカプセル化するクラスをデザインすることもできます。このクラスは、ReaderWriterLock を使用して、リソースのロック処理を実装できます。ReaderWriterLock は効率的に動作するようにデザインされているので、個々のオブジェクトの同期に使用できます。

読み取りと書き込みの時間を最小限にするように、アプリケーションの構造をデザインしてください。書き込みロックは排他的なので、書き込み時間が長いと、スループットがその分低下してしまいます。読み取り時間が長いと、書き込みスレッドを待たせることになります。また、書き込みロックのために待機しているスレッドが 1 つでもあると、新たに読み込みロックを要求するスレッドもブロックされてしまいます。

参照

スレッド処理 | スレッド処理オブジェクトと機能 | ReaderWriterLock クラス | Monitor