zoukankan      html  css  js  c++  java
  • 请写一段PHP代码,确保多个进程同时写入同一个文件成功

    1. 请写一段PHP代码,确保多个进程同时写入同一个文件成功

    function writeData($path, $mode,$data,$max_retries = 10)
    {
        $fp = fopen($path, $mode);
        $retries = 0;
        do{
            if ($retries > 0)
            {
                usleep(rand(1, 10000));
            }
            echo '等待时间:'.$retries;
            $retries += 1;
        }while (!flock($fp, LOCK_EX) and $retries<= $max_retries);
        //判断是否等于最大重试次数,是则返回false
        if ($retries == $max_retries)
        {
            return false;
        }
        fwrite($fp, "$data");
        flock($fp, LOCK_UN);
        fclose($fp);
        return true;
    }
    

    2.array_merge 和 array+array 区别

    (1)第一个数组键包含在第二个数组中

    $arr1=array('name'=>'lxw','age'=>12,'sex'=>1);
    $arr2=array('name'=>'king','age'=>22,'sex'=>2,'tel'=>'123456');
     
    $arr3=array('1'=>'lxw','2'=>12,'3'=>1);
    $arr4=array('1'=>'king','2'=>22,'3'=>2,'4'=>'123456');
     
    echo '<pre>';
    echo '关联数组 - merger: <br>';
    print_r(array_merge($arr1,$arr2));
    echo '<pre>';
     
    echo '<pre>';
    echo '关联数组 - 加号: <br>';
    print_r($arr1+$arr2);
    echo '<pre><hr>';
     
    echo '<pre>';
    echo '索引数组 - merger: <br>';
    print_r(array_merge($arr3,$arr4));
    echo '<pre>';
     
    echo '<pre>';
    echo '索引数组 - 加号: <br>';
    print_r($arr3+$arr4);
    echo '<pre>';
    

    (2)第一个数组存在第二个数组中不存在的键

    $arr1=array('name'=>'lxw','age'=>12,'sex'=>1,'address'=>'bj'); //新增address
    $arr2=array('name'=>'king','age'=>22,'sex'=>2,'tel'=>'123456');
     
    $arr3=array('1'=>'lxw','2'=>12,'3'=>1,'4'=>'bj');//新增4键名
    $arr4=array('1'=>'king','2'=>22,'3'=>2,'4'=>'123456');
     
    echo '<pre>';
    echo '关联数组 - merger: <br>';
    print_r(array_merge($arr1,$arr2));
    echo '<pre>';
     
    echo '<pre>';
    echo '关联数组 - 加号: <br>';
    print_r($arr1+$arr2);
    echo '<pre><hr>';
     
    echo '<pre>';
    echo '索引数组 - merger: <br>';
    print_r(array_merge($arr3,$arr4));
    echo '<pre>';
     
    echo '<pre>';
    echo '索引数组 - 加号: <br>';
    print_r($arr3+$arr4);
    echo '<pre>';
    

    求一键三连:点赞转发在看

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    2020.12.11(读书笔记)
    python打包tkiner程序运行时任务栏图标
    使用py2exe打包exe
    word常用设置方法收集
    Helium初体验
    thkiner常用组件
    Java高并发16-LongAdder类源码解析(上)
    Java高并发15-AtomicLong等原子类源码解析
    Java高并发14-多线程下ThreadLcoalRandom源码解析以及对比
    如何做一个自动化感应垃圾桶
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452578.html
Copyright © 2011-2022 走看看