マルチコアと同期
読み書きロック(リーダー・ライターロック)の特徴として正しいものはどれか。
- A書き込むスレッドは何本でも同時に入れるが、読むスレッドは1本だけ
- B読むだけのスレッドは同時に何本でも入れるが、書き込むスレッドは1本だけで、そのときはほかの誰も入れない
- C読むときも書くときも、必ず1本のスレッドしか入れない
答えと解説を見る
正解:B. 読むだけのスレッドは同時に何本でも入れるが、書き込むスレッドは1本だけで、そのときはほかの誰も入れない
読むだけなら同時に行ってもデータは壊れないので、読み書きロックは読み手どうしの同時実行を許し、書き手だけを排他的にします。設定の表のように、読まれることが多く書き換えがまれなデータで並列性を高められます。ただし読み手が途切れないと書き手がいつまでも入れないことがあり、実装によっては書き手を優先する工夫がされています。
- A. 逆です。
- B. 正しい。読むことが多いデータに向いています。
- C. それは普通のロック(ミューテックス)です。