複数のスレッドで共有されるオブジェクトがあるプログラムを書いています。
- A)複数の書き込みスレッドがオブジェクトに書き込みます(すべて同じ関数を実行します)
- B)5秒ごとにオブジェクトにアクセスする読み取りスレッド
- C)ユーザーリクエストがあるオブジェクトにアクセスする読み取りスレッド
複数のスレッドが同時にオブジェクトに書き込むことは望ましくないため、オブジェクトに書き込むときは明らかにオブジェクトをロックする必要があります。
私の質問は次のとおりです。
- オブジェクトから読み取るときにもオブジェクトをロックする必要がありますか?
- 書くときにオブジェクトをロックするだけなら、クリティカルセクションで十分だと思うのは正しいですか。しかし、読み取りまたは書き込み時にオブジェクトをロックする場合、ミューテックスが必要ですか?
Microsoft Officeでは、Wordの2つのインスタンスが読み取り/書き込みアクセスモードでドキュメントにアクセスすることはできないため、この質問をしています。ただし、ドキュメントを読み取り/書き込みモードで開いているときに、Wordの別のインスタンスを開いて、読み取り専用モードでドキュメントにアクセスすることができます。同じロジックがスレッドに適用されますか?