关于 PHP 的 flock() 函数的使用小问题 [ 未指定版本 ]
这个函数一般用来处理并发事件的
网上的例子
$fp = fopen("/tmp/lock.txt", "r+");
if (flock($fp, LOCK_EX)) { // 进行排它型锁定
/**
*这写需要执行的代码
**/
flock($fp, LOCK_UN); // 释放锁定
} else {
echo "Couldn't get the lock!";
}
fclose($fp);
但是其中需要执行的代码在并发的情况下所有用户进程都会执行,这是一个大坑啊。
所以 flock($fp, LOCK_EX)
要加上 flock($fp, LOCK_EX|LOCK_NB)
在锁定时阻塞,才不会出现多个进程都会执行,但这样也会导致,当一个进程执行程序时其它进程直接返回失败错误。

Yii用户专享10000元红包
Yii开发者福利,万元红包可用于云服务器、高防服务器、裸金属服务器、云数据库、高防IP购买和续费
Mr_Xu
注册时间:2015-12-22
最后登录:30分钟前
在线时长:13小时56分
最后登录:30分钟前
在线时长:13小时56分
- 粉丝3
- 金钱70
- 威望20
- 积分400
共 1 条评论
看手册上面说默认不就是阻塞的吗?