概述
PHP中的文件锁
当多个客户端同时并发访问时,这个脚本的结果会出现不正确,这个问题需要使用锁机制来解决。
在我们这个网站中需要用到锁的地方就是高并发下定单时减少商品库存量时。这就要涉及到锁机制,在同一个段只允许一个人访问,防止数据数显错误!!
锁有两种:一种是mysql的表锁,另一个是php文件锁
这里只介绍文件锁:
PHP锁定的是一个文件,所以要先有一个文件。
文件锁也分为排它锁(LOCK_EX)和共享(LOCK_SH)锁两种。
LOCK_EX:写锁,写入时为写锁状态,别人不能写也不能读。若直接读,将有一段时间得等待,别人写完了,解锁后才能恢复,才可以写。
----》通俗理解: 抄袭别人作业时,要等别人作业写完,才能拿来读,以及抄袭。
LOCK_SH:共享锁,别人只能读,不能写。如果直接写,将是一段时间得等待,别人读完了,解锁后才恢复,才可以写。
LOCK_UN:解除上面两种状态。
LOCK_NB:在读取或者写入时,如果文件被锁,则立刻返回通知访问的文件被锁了,不用再等待。不能单独使用,需与前面两者配合。
如:
flock($fp,LOCK_SH|LOCK_NB)
--》用于判断有些人再写,而有些人在读同个文件的情况,使用其立刻知道当前为写锁状态而不用等待。
flock($fp,LOCK_EX|LOCK_NB)
--》用于判断可能多人在写同个文件的情况,使用其立刻知道当前为共享状态而不用等待。
转载于:https://www.cnblogs.com/tianjiale/p/9757206.html
最后
以上就是明理台灯为你收集整理的PHP文件锁的全部内容,希望文章能够帮你解决PHP文件锁所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复