排他ロック
ロックの種類だよ
自分は読み書きできるよ
他の人は読み書きできなくなるよ
データを変更したいときにやるよ
簡単に書くよ
排他ロック(読:ハイタロック 英:exclusive lock)とは
「これは今、俺が使ってるからさ。他の人は触らないでね」にすること(ロック)の種類のひとつ
であり
「これは今から俺様が使うから、他の奴らは一切触るな!」なロックのこと
です。
もう少し辞書っぽく書くと
自分は見ることも変更することもできる、他の人は見ることも変更することもできない、になるロックのこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「排他制御」と「ロック」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
排他制御は「ダブルブッキングしないようにすること」です。
同時に使われるとマズい(おかしくなる)ものに組み込む仕組みで、1つの物を同時に使わせないための工夫です。
今回 登場するロックは「これは今、俺が使っているからさ。他の人は触らないでね」です。
鍵をかければ、他の人は使えないですよね?
そのような状態、もしくは、そのような状態にする行為です。
ロックは排他制御を実現する手段のひとつです。
以上を踏まえて
「これは今、俺様専用だ!何人たりとも触れることは、まかりならん!」なロック
が「排他ロック」です。
「占有ロック」や「専有ロック」とも呼ばれます。
排他ロックにすると、ロックした人は、そいつを見られます。
変更も できます。
他の人は、ロックしている間、そいつを見られません。
変更もできません。
排他ロックは完全に自分一人で使うためのロックです。
「えっ?それって普通のロックじゃないの?」と思った人は、その通りです。
みなさんが「ロック」と言われて思い浮かべるロックは、おそらく排他ロックです。
実はロックには「共有ロック」と呼ばれる種類のロックもあります。
共有ロックは「これは今、ボクが見ているからさ。みんなも見ていいけど、変更はしないでね」なロックです。
共有ロックにすると、ロックした人は、そいつを見られます。
ただし、変更はできません。
他の人も、たとえロックされていても、そいつを見られます。
ただし、変更はできません。
共有ロックは「(不都合が起きない範囲で)みんなで仲良く使おうね」なロックです。
「別に変更しないんだよね」なときは、共有ロックにしておくと他のプログラムとかに親切です。
ロックしている間も見ることはできますからね。
「見るだけならロック自体をしなくて良いんじゃないの?」と思う人がいるかもしれませんが、わざわざロック(共有ロック)するのは他の人に「今は自分が見ているから変更しないでね!」と知らせるためです。
自分が見ている途中なのに変更されたら、なんかゴチャゴチャして、おかしくなりそうですよね?
それを防ぐためにやるのが共有ロックです。
一方「あー、変更するかもな」なときは排他ロックにする必要があります。
自分が変更しているときに他のプログラムとかが(変更途中のやつを)見たり変更したりしたら、おかしくなりますよね?
そうでなくても、他のやつに邪魔されずに使いたいときはあるでしょう。
そんなときにやるのが排他ロックです。
気が向いたら、併せて覚えてあげてください。
■排他ロック
・自分専用になる
・自分は見られるし、変更もできる
・他の人は見られないし、変更もできない
・変更する用
■共有ロック
・自分専用にならない
・自分は見られるけど、変更はできない
・他の人も見られるけど、変更はできない
・見るだけ用
です。
一言でまとめるよ
まぁ「排他ロック」って単語が出てきたら「『他の人には何もさせないぜ!』なロック
(「これは今、俺が使ってるからさ。他の人は触らないでね」にすること)なんだな~」と お考えください。
おまけ
■訳してみるよ
「排他」は日本語ですね。
「lock(ロック)」の意味は「錠前」とか「錠を掛ける」とか「閉じ込める」とか「固定する」とか「動けなくする」とかです。
何となく くっつけると
排他で錠をかける
となります。






