Mr_Xu 2020-05-12 16:35:36 293次浏览 0条评论 0 0 0

这个函数一般用来处理并发事件的
网上的例子

$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) 在锁定时阻塞,才不会出现多个进程都会执行,但这样也会导致,当一个进程执行程序时其它进程直接返回失败错误。

亿速云
    没有找到数据。
您需要登录后才可以评论。登录 | 立即注册