php的锁机制(一)

问题:当一个脚本被一个客户端访问都正常,但当多个客户端同时并发访问时,这个脚本的结果会出现不正确,这个问题需要使用锁机制来解决。在我们这个网站中需要用到锁的地方就是高并发下定单时减少商品库存量时。

这就要涉及到锁机制,在同一个段只允许一个人访问,防止数据数显错误!!

锁有两种:一种是mysql的表锁,另一个是php文件锁

首先介绍的是:mysql的锁

语法是

加锁:LOCK TABLE 表名 READ|WRITE,表名2 READ|WRITE……

解锁 : UNLOCK TABLES (注意这里tables,解锁多个表)

解释一下:

1.READ读锁(共享锁):如果以这种方式锁定表,那么在锁定的过程中所有客户端只有读这张表
2.WRITE:写锁(排它锁):如果以这种方式锁定表,那么只有锁定这个表的客户端可以操作这张表,其他客户端只能操作个表直到锁释放为止。
插图一:READ锁
这里写图片描述
插图二:WRITE锁
这里写图片描述
这里写图片描述

接下来讲文件锁:
PHP中的文件锁
PHP锁定的是一个文件,所以要先有一个文件。
先创建一个文件,文件的文件名和扩展名都无所谓。
文件锁也分为排它锁(LOCK_EX)和共享(LOCK_SH)锁两种。这里写图片描述

原理是:建一个文件,在读取文件的时候,只允许一个人进去,其他的堵在外面

转载于:https://www.cnblogs.com/xiaozheng6/p/6159173.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值