首先,我们要分清楚,锁有2种,共享锁,以及独占锁
共享锁
共享锁用于某个文件不会被写,或者不会被更新(也就是只读)的情况,加了共享锁的文件,只能再加共享锁,而不能加独占锁
例如:
$file = fopen...需要所有的共享锁文件释放,才可加锁成功:
?...,关于操作这个文件的代码,都需要增加锁,不管是独占锁还是共享锁,否则数据还是会出现问题
例如:
当加好共享锁之后,运行这段代码:
锁
独占锁用于数据可能会被修改的文件,当一个进程加上独占锁之后,其他进程将不能增加独占锁和共享锁(将会阻塞)
测试代码:
共享锁也会出现一样的情况(不做测试)
注意事项
独占锁加上之后,虽然其他进程无法加共享锁以及独占锁,但是可以直接写入文件,同样会造成数据污染,所以注意,当你确定某个文件确定需要加锁时,关于操作这个文件的代码