• 技术文章 >后端开发 >php教程

    php 文件锁 简析

    墨辰丷墨辰丷2018-05-25 11:11:09原创548
    PHP出现文件锁与mysql表锁有大概想的用法,就是同一时间只能让一个人操作,这样就避免了同时有多个人操作同一文件,这样导致数据丢失的情况了,下面我来给大家介绍PHP文件锁用法。

    锁机制之所以存在是因为并发导致的资源竞争,为了确保操作的有效性和完整性,可以通过锁机制将并发状态转换成串行状态。作为锁机制中的一种,PHP的文件锁也是为了应对资源竞争。假设一个应用场景,在存在较大并发的情况下,通过fwrite向文件尾部多次有序的写入数据,不加锁的情况下会发生什么?多次有序的写入操作相当于一个事务,我们此时需要保证这个事务的完整性。

    如果我们有两个程序同时向某个文件中写入数据,为了保证数据的完整性,可以加一个文件锁,先让程序1执行,程序1执行完后,解锁,再让程序2执行。实现代码如下:

    $fp = fopen('test.txt',"a");
    $count = 10;
    if (flock($fp, LOCK_EX)) {
    for($i=1;$i<$count;$i++){
    fwrite($fp, 'text2_'.$i."rn");
    echo "test2".date('h:i:s') . "
    ";
    sleep(1); 
    echo "test2".date('h:i:s');
    }
    flock($fp , LOCK_UN);
    }else{
    echo "Couldn't lock the file !";
    }
    fclose($fp);


    以上就是本文的全部内容,希望对大家的学习有所帮助。


    相关推荐:

    PHP实现文件锁加锁、解锁方法

    PHP 实现文件锁与进程锁

    PHP实现基于文件锁解决多进程同时读写一个文件

    以上就是php 文件锁 简析的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php 简析 文件
    上一篇:PHP中empty,isset,is_null用法和区别详解 下一篇:关于PHP new static 和 new self详解
    大前端线上培训班

    相关文章推荐

    • 带你分清类中的构造函数与析构函数• PHP中的命名空间定义与使用(实例详解)• PHP中clone关键字和__clone()方法的使用(实例详解)• 怎样去搞定PHP类的继承?(总结分享)• 五分钟带你了解PHP中的魔术方法(实例详解)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网