MW211 EXIT

devlog
設計/排他制御(2)共有ロックと排他ロック
2013年02月24日
排他制御の宣言について代表的なものとして
「共有ロック」と「排他ロック(占有ロック)」がある。

この二つの関係について、もし先約があって、そこで宣言しようとした場合、
ロックができる場合(○)と、ロックができず待機となる場合(×)を以下にまとめた。
┌────┬─────┐
│        │   先約   │
│        ├──┬──┤
│        │共有│排他│
├─┬──┼──┼──┤
│宣│共有│ ○ │ × │
│  ├──┼──┼──┤
│言│排他│ × │ × │
└─┴──┴──┴──┘
「排他」は何らかのロックがかかっていると待機するという潔癖症。
「共有」は「排他」がかかっていると待機するという控えめな性格。
ただし、「共有」同士なら気にせず共有してしまう。

「共有ロック」は読込系で、「排他ロック」は書込系で使う。

読込時は他に影響を与える訳ではないので占有する必要がないように思えるが
読み込んでいる横から書き込まれるとぐちゃぐちゃになってしまう。
だから、最小限「読み込んでる時には書き込まないでくださいね」と宣言する。
分類:設計