美文网首页
PHP文件加锁实现多进程读写同一文件

PHP文件加锁实现多进程读写同一文件

作者: 舒小贱 | 来源:发表于2017-09-19 15:07 被阅读0次

php是不支持多线程的,可以通过加锁来实现多进程同时操作同一文件:

<?php

$fp = fopen("1.txt", "w+");
if(flock($fp, LOCK_EX)){  //排他锁
    fwrite($fp, "writing something here \n");
    flock($fp, LOCK_UN);
}else{
    echo 'cannot lock the file';
}
fclose($fp);

flock函数的第二个参数的意义为:
要取得共享锁定(读取的程序),将 lock 设为 LOCK_SH(PHP 4.0.1 以前的版本设置为 1)。
要取得独占锁定(写入的程序),将 lock 设为 LOCK_EX(PHP 4.0.1 以前的版本中设置为 2)。
要释放锁定(无论共享或独占),将 lock 设为 LOCK_UN(PHP 4.0.1 以前的版本中设置为 3)。
如果不希望 flock() 在锁定时堵塞,则给 lock 加上 LOCK_NB(PHP 4.0.1 以前的版本中设置为 4)。

相关文章

  • PHP文件加锁实现多进程读写同一文件

    php是不支持多线程的,可以通过加锁来实现多进程同时操作同一文件: flock函数的第二个参数的意义为:要取得共享...

  • Linux 为什么多进程能够读写正在删除的文件

    Linux中多进程环境下,打开同一个文件,当一个进程进行读写操作,如果另外一个进程删除了这个文件,那么读写该文件的...

  • IPC 使用文件共享

    共享文件也是一种不错的进程间通信方式,两个进程通信读写同一个文件夹交换数据。A进程把数据写入文件,B进程通过读取这...

  • 多个进程同时访问某个文件

    因为业务需求需要多个进程同时访问某个文件并进行读写操作的需求,因为文件并不是被同一个进程访问,而且极大可能会发生多...

  • Linux-C-day-5-读写锁

    读写锁 当一个进程正在读或者修改某个文件的某个部分时,组织其他进程修改同一个文件或者同一个文件的某个区域。对于Li...

  • 客户服务器系统,通信实现机制

    1套接字 基于文件类型: 同一台机器之间进程之间的通信,一个套接字关联一个文件,双方通信通过特殊文件实现读写通信,...

  • IPC之文件共享的使用

    共享文件也是进程间通信的方式,两个进程通过读写同一个文件来交换数据。其局限性在于如果是并发读写时,内容有可能不是最...

  • php 基础知识点(2)

    PHP写一段代码,确保多个进程同时写入一个文件成功 1.加锁 $fp = fopen("lock.txt","w+...

  • 进程间通信

    进程的读写 写文件的进程只能单个运行(写的时候禁止读),读文件的进程可以同时有多个,读写的互斥锁wsem,rsem...

  • php文件读写

    一、文件编程:在网站开发中,我们要使用到文件的上传和下载。文件就是保存数据(二进制数据、文本数据),在开发者角度看...

网友评论

      本文标题:PHP文件加锁实现多进程读写同一文件

      本文链接:https://www.haomeiwen.com/subject/gdgwsxtx.html