この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
php_lock [2019/01/01 10:08] 管理者 |
php_lock [2019/01/01 10:20] (現在) 管理者 [注意] |
||
---|---|---|---|
ライン 2: | ライン 2: | ||
1つのファイルに対して多人数が同時に書き込みを行うと処理が喧嘩してファイル破損するので、同時に処理できないよう「一人目以外は拒否」または「一人ずつ順番に処理を行う」制御する仕組みをファイルロックと言います。 | 1つのファイルに対して多人数が同時に書き込みを行うと処理が喧嘩してファイル破損するので、同時に処理できないよう「一人目以外は拒否」または「一人ずつ順番に処理を行う」制御する仕組みをファイルロックと言います。 | ||
- | 注意:排他制御とも言われますが文書管理の面では不完全です(ファイルアクセス面では完全)。例えば一人目と二人目の文書が反目している場合(競合状態)にファイルロックでは単純に「一人目以外は拒否」なら先に処理した方が勝ち「一人ずつ順番に処理を行う」なら後に処理した方が勝ちとなり、負けた方の内容がいくら正しくても破棄されます。これを回避するため何らかの方法で競合解決する必要しなければ完全な排他制御とは言えません。 | ||
===== flock ===== | ===== flock ===== | ||
ライン 119: | ライン 118: | ||
===== 注意 ===== | ===== 注意 ===== | ||
- | ファイルロックは同時処理によるファイル破損を防止するだけなので、 | + | ファイルロックは排他制御とも言われますがファイル破損を防止する機能しかないので、処理する内容によっては排他制御が不完全となります。 |
+ | 例えば一人目と二人目の文書が反目するような場合を競合状態と言いますが、ファイルロックでは単純に「一人目以外は拒否」なら先に処理した方が勝ち「一人ずつ順番に処理を行う」なら後に処理した方が勝ち、となるので負けた方の内容がいくら正しくても破棄されます。こういった場合には何らかの方法で競合解決しなければ完全な排他制御とは言えません。 | ||