menu
書いてる野郎
orebike@gmail.com
自身の実行中は他を抑えるというやつ。つまり1個しか実行したくないやつ、2重起動を防ぐ。
なんでもかんでも1個しか起動を許さないと実行効率が下がってしまう場合があるのでロックには2種類のロックが存在する。 共有ロックと排他ロック。
共有ロックというのはロック中に他の処理がロックを獲得しようとした場合(他の処理を実行しようとした場合)、それが共有ロックだった場合は許可し、 排他ロックだった場合はブロックする。
排他ロックというのはロック中に他の処理がロックを獲得しようとした場合、それがどんなロックであってもブロックする(実行させない)。
どのような場合に用いるかというと、 共有ロックは処理がなにか共有物を参照するだけの場合用いられる。参照するだけなので、複数処理が同時にそれを読み込んでも問題は起こらないだろうというネライ。
排他ロックは処理がなにか共有物を書き換える場合がある状況で使われる。書き換えるので、複数処理が同時に動くとそのタイミングによって結果が変わってしまうことを防ぐネライ。
なので、共有ロックをリードロック、排他ロックをライトロックと呼んだりすることもある。