这个需求是在软件设计过程常见的加锁。
学计算机的同学都应该知道,这个是在《计算机操作系统》课程上有这个知识点。
主要要考虑的是进程的同步,也就是进程对资源的互斥访问。
OK,用程序说话吧!

<?php
function writefile( $filename, $data ){
 $fp = fopen( $filepath, 'a' );   //以追加的方式打开文件,返回的是指针
 do{
    usleep( 100 );       //暂停执行程序,参数是以微秒为单位的
 }while( !flock( $fp, LOCK_EX ) );  //以独享写入的方式锁定文件,成功则返回TRUE,否则FALSE
}
 $res = fwrite( $fp, $data."/n" );  // 以追加的方式写入数据到打开的文件
 flock( $fp, LOCK_UN );      //解锁,以让别的进程进行锁定
 fcloce( $fp );           //关闭打开的文件指针
 return $res;            //返回写入结果
?>

OK,代码还不算很多吧!这个不要记代码,重要的是要理解每一个函数的意思,以及每一个语句的意思。

PHP写一段代码,确保多个进程同时写入一个文件成功的更多相关文章

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

    方案一: function writeData($filepath, $data) { $fp = fopen($filepath,'a'); do{ usleep(100); }while (!fl ...

  2. 写一段PHP代码,确保多个进程同时写入同一个文件成功(腾讯)

       

  3. 写一段php代码,确保报个进程同时写入同一个文件

  4. 写一段代码在遍历 ArrayList 时移除一个元素?

    该问题的关键在于面试者使用的是 ArrayList 的 remove() 还是 Iterator 的 remove()方法.这有一段示例代码,是使用正确的方式来实现在遍历的过程中移 除元素,而不会出现 ...

  5. javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数

    javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(" ...

  6. 使用PHP文件锁写一个多个请求同时并发写入一个文件,要求不脏读、数据不丢失

    使用PHP文件锁写一个多个请求同时并发写入一个文件,要求不脏读.数据不丢失. //并发文件操作 function filehandle($filename,$data){ $start = 0; $e ...

  7. 假设写一段代码引导PC开机这段代码是 ? Here is a tiny &quot;OS&quot; :-D

    Hello world -- OS 我找到了华科绍志远博士的相关代码,发现他依据MIT的JOS的boot.S 稍作改动.然后单独剥离出来,能够非常好玩~ 资料下载地址: http://download ...

  8. 用for循环写这段代码

    之前用while循环写了一段代码,现在改为用for循环来写,代码如下: hongtao_age = 38 for i in range(5): guess_age = int(input(" ...

  9. JavaScript-navigator_userAgent-编写一段代码能够区分浏览器的主流和区分

    1 userAgent:包含浏览器名称和版本号的字符串 <!DOCTYPE html> <html> <head lang="en"> < ...

随机推荐

  1. xmind第一天笔记

  2. 2016 ACM/ICPC Asia Regional Dalian Online 1006 /HDU 5873

    Football Games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  3. gulp 制作雪碧图

    雪碧图:sprite 是把多张图片拼到一张图中,提升性能的一种做法.把合并的图片一次性加载到内存中,需要时只渲染一部分. 我们选择gulp.spritesmith插件. 使用gulp时首先要在指定的任 ...

  4. viewpager中对fragment的操作

    XXAdatper xxAdapter = (XXAdatper)viewpager.getAdapter(); XXFragment  xxFragment= (XXFragment )adapte ...

  5. zBoot/Makefile

    #上层makefile调用执行make命令,执行的应该是第一个目标allHEAD = head.oSYSTEM = ../tools/zSystem#LD = gcc#TEST = -DTEST_DR ...

  6. 将String类型的XML解析并设置到实体类中

    package com.mooc.string; import java.util.ArrayList; import java.util.List; import org.dom4j.Documen ...

  7. const 常引用

    常类型是指使用类型修饰符 const 说明的类型,常类型的变量或对象的值是不能被更新的. 这篇主要说常引用.常引用是指所引用的对象不能被更新. 在实际应用中,常引用往往用来作为函数的形参,这样的参数称 ...

  8. Linux驱动设计—— 中断与时钟

    中断和时钟技术可以提升驱动程序的效率 中断 中断在Linux中的实现 通常情况下,一个驱动程序只需要申请中断,并添加中断处理函数就可以了,中断的到达和中断函数的调用都是内核实现框架完成的.所以程序员只 ...

  9. android开源项目---项目篇

    本文转载于:http://blog.csdn.net/likebamboo/article/details/19081151 主要介绍那些Android还不错的完整项目,目前包含的项目主要依据是项目有 ...

  10. 论文阅读之 Inferring Analogous Attributes CVPR 2014

    Inferring Analogous Attributes     CVPR  2014 Chao-Yeh Chen and Kristen Grauman Abstract: The appear ...