文件锁在应对并发处理的时候是一个很不错的避免出错的方案。所以整理一下关于文件锁实现的代码。

以下代码为阻塞模式的文件锁和非阻塞模式的文件锁:

<?php
#阻塞模式(后面的进程会一直等待前面的进程执行完毕)
public function example1()
{
$file = fopen('文件路径','w+');
//加锁
if (flock($file,LOCK_EX)) {
//业务代码
flock($file,LOCK_UN);//解锁
}
//关闭文件
fclose($file);
}
#非阻塞模式(只要当前文件有锁存在,那么直接返回)
public function example2()
{
$file = fopen('文件路径','w+');
//加锁
if (flock($file,LOCK_EX|LOCK_NB)) {
//业务代码
flock($file,LOCK_UN);//解锁
} else {
//TODO 执行业务代码 返回系统繁忙等错误提示
}
//关闭文件
fclose($file);
}

相关参考:
https://www.php.net/manual/zh/function.flock.php
https://www.cnblogs.com/zhouguowei/p/9708380.html


如您从本文得到了有价值的信息或帮助,请考虑扫描文末的二维码对我进行赞赏和鼓励。

与《PHP 文件锁》相关的博文:


发布时间 06/16/2020 06:44:55所属栏目 Program Code.所属标签 .

留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌