ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 文件锁 为何要使用文件锁? 若一个人在写入一个文件,其他人同时也在写入这个文件。这情况下,如果遇到一定的碰撞概率的话,不知道到以底谁的操作为准。 文件锁的类型: **共享锁:** 如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。 **排他锁:** 如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。 PHP 中使用 `flock()` 函数来锁定文件 bool flock ( resource $handle , int $operation ) operation 参数可选值: * LOCK_SH 取得共享锁定(读取的程序)。 * LOCK_EX 取得独占锁定(写入的程序)。 * LOCK_UN 释放锁定(无论共享或独占)。 ``` <?php $handle = fopen('/home/koogua/tmp/foo.txt', 'r+'); if (flock($handle, LOCK_EX)) { fwrite($handle, '文件这个时候被我独占了哟' . PHP_EOL); flock($handle, LOCK_UN); } else { echo '文件加锁失败'; } fclose($fp); ?> ```