zoukankan      html  css  js  c++  java
  • php 文件锁

    <?php
    class Order{
        /**
         * 阻塞模式(后面的进程会一直等待前面的进程执行完毕)
         */
        public function createOrder1(){
            $file = fopen(__DIR__.'/lock.txt','w+');
            //加锁
            if(flock($file,LOCK_EX)){
                //TODO 执行业务代码
                sleep(5);
                echo time();
                flock($file,LOCK_UN);//解锁
            }
            //关闭文件
            fclose($file);
        }
     
        /**
         * 非阻塞模式(只要当前文件有锁存在,那么直接返回)
         */
        public function createOrder2(){
            $file = fopen(__DIR__.'/lock.txt','w+');
            //加锁
            if(flock($file,LOCK_EX|LOCK_NB)){
                //TODO 执行业务代码
                sleep(5);
                echo time();
                flock($file,LOCK_UN);//解锁
            }else{
                //TODO 执行业务代码 返回系统繁忙等错误提示
                echo "系统繁忙";
            }
            //关闭文件
            fclose($file);
        }
    }
    $a = new Order();
    $a->createOrder1();
  • 相关阅读:
    Makefile学习
    Tmux使用
    Linux进程管理学习资料
    Linux内存管理学习资料
    Python常用的软件包
    Docker 学习
    Intel处理器技术文档
    Firefly-RK3399笔记
    Linux Kernel API
    ARM 技术文档
  • 原文地址:https://www.cnblogs.com/zonglonglong/p/11657405.html
Copyright © 2011-2022 走看看