代码库
  • 首页
  • html模板
  • Jquery插件
  • 代码文章
  • 百宝箱
  • 网站导航
  • 编程代码
    • PHP
    • Jquery
    • DivCss
    • Mysql
    • linux
  • 程序代码
    • 织梦Cms
  • php
  • jquery
  • divcss
  • 网站建设500起 APP小程序独开
  • HTML模板全站下载388元
  • COMODO通配符SSL证书330元
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 广告位招租:515856299
  • 领取上云大礼包单笔最高立减1500元
  • 服务器0元试用,首购低至0.9元/月起

PHP文件锁处理高并发

分类:PHP人气:2153

利用flock()函数对文件进行加锁(排它锁),实现并发按序进行。

flock(file,lock,block)有三个参数。

file:已经打开的文件

ock:锁的类型
  • LOCK_SH:共享锁(读锁)
  • LOCK_EX:独占锁定(排它锁,写锁)
  • LOCK_UN:解锁
  • LOCK_NB:如果希望在文件锁定时阻塞进程,那么需要加上该参数
block:设置为true的时候,锁定文件时,会阻止其他进程
class Order{ 
    /**
     * 阻塞模式(后面的进程会一直等待前面的进程执行完毕)
     */
    public function createOrder1(){
        $file = fopen(__DIR__.'/dmaku.txt','w+');
        //加锁
        if(flock($file,LOCK_EX)){
            //TODO 执行业务代码
            flock($file,LOCK_UN);//解锁
        }
        //关闭文件
        fclose($file);
    } 
    /**
     * 非阻塞模式(只要当前文件有锁存在,那么直接返回)
     */
    public function createOrder2(){
        $file = fopen(__DIR__.'/dmaku.txt','w+');
        //加锁
        if(flock($file,LOCK_EX|LOCK_NB)){
            //TODO 执行业务代码
            flock($file,LOCK_UN);//解锁
        }else{
            //TODO 执行业务代码 返回系统繁忙等错误提示
        }
        //关闭文件
        fclose($file);
    }
}
标签:文件锁
PREVIOUS:js 上传下载excle文件
NEXT:php去除所有空格
  • 结束时间
  • sqlite_create_function
  • 时间差异
  • 多图片
  • 生成二维码
  • 请求方法
  • 布尔类型
  • 多文件
  • 图片转换
  • https
  • phpini_set
  • 时间格式
  • PHP上传
  • 正则
  • 显示周日
  • 文本转换
  • 字符串
  • 时间
  • 图片
  • 文件
  • 文件大小
  • 公共函数
  • phpStudy
  • 日志
  • 转农历
  • 发送邮件
  • array_diff()
  • 时区
  • 连接MySql
  • 获取远程
  • 字符串不乱码
  • php删除
  • strpos
  • 压缩成
  • intval
  • 正则匹配
  • 编码
  • tinyurl
  • trim
  • 分割
  • 解析
  • 表单
  • 异步
  • PHP函数
  • sqlite_num_fields
  • 是否有效
  • 双引号
  • 实例化
  • 请求
  • sqlite_query
  • array_map
  • 帐号
  • 删除目录
  • 统计
  • 复制文件
  • json
最新模板
  • 程序员培训公司网站模板

    这是一套程序员培训公司网站模板是一款适合程序开发公司网站模板下载

  • 宽屏公司着陆页网站模板

    这是一套宽屏公司着陆页网站模板是一款宽屏大气单页网站模板下载

  • 运输行业公司网站模板

    这是一套运输行业公司网站模板是一款大型货物海外集装箱公司网站模板下载

  • APP小程序开发者网站模板

    这是一套APP小程序开发者网站模板是一款微信小程序开发者企业官网网站模板下载

  • 紫色渐变展览活动单页模板

    这是一套紫色渐变展览活动单页模板是一款bootstrap单页网站模板下载

热门推荐
  • 1PHP取整数四种方法
  • 2php 写出text文件
  • 3php去除所有空格
  • 4PHP文件锁处理高并发
  • 5php格式化数字
  • 6php多中重定向网页跳转
  • 7php对比两个指定的日期
  • 8php获取今天、昨天、明天的日期
  • 9php获取上一页面url地址
  • 10php字符串查找strstr strpos
  • 11php发https请求
  • 12php定时执行取消定时
  • 13php双引号中的变量
  • 14php urlencode和urldecode
  • 15PHP随机生成起名用户信息
百宝箱
  • CSS压缩格式化

    CSS压缩

  • html格式化

    html格式化

  • 繁体字转换器

    繁体字转换

  • JSON检验

    JSON检验

  • MD5加密

    MD5加密

  • css3动画

    css3动画

© 2016-2021 代码库关于我们网站导航网站地图皖ICP备14004357号
代码库