首页 技术 正文
技术 2022年11月15日
0 收藏 428 点赞 4,574 浏览 499 个字
  总所知周,并发容易造成数据的重复处理,我的一个项目给游戏客户端提供了接口,游戏用户相对较多,如果使用数据库排它锁消耗的资源较高,
因而使用了文件的排它锁来应对并发。
  思路是打开一个文件并取得文件的独占锁,采用的是非阻塞,当程序运行完毕再释放独占锁资源。
      
/**
* 加锁,独占锁
*/
public function lockFile()
{
$this->handle=fopen('lock','w+');
if($this->handle){
//如果文件被锁定则非阻塞操作
if(flock($this->handle,LOCK_EX | LOCK_NB)){
return true;
}else{
\Log::INFO('并发啦');
$this->ajaxMessage(1,'服务器繁忙,稍后再试');
}
}
return false;
}
/**
*解锁
*/
public function unlockFile()
{
if($this->handle){
       //释放锁定
flock($this->handle,LOCK_UN);
clearstatcache();
fclose($this->handle);
}
}

    					
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,083
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,558
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,407
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,180
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,816
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,899