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)锁两种。这里写图片描述

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

posted @ 2016-09-23 21:14  小郑6  阅读(2301)  评论(0编辑  收藏  举报