这个需求是在软件设计过程常见的加锁。
学计算机的同学都应该知道,这个是在《计算机操作系统》课程上有这个知识点。
主要要考虑的是进程的同步,也就是进程对资源的互斥访问。
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. 转:struts标签之select详解

    <html:select>生成HTML<select>元素 <html:option>:生成HTML<option>元素 <html:option ...

  2. UVa 103 Stacking Boxes --- DAG上的动态规划

    UVa 103 题目大意:给定n个箱子,每个箱子有m个维度, 一个箱子可以嵌套在另一个箱子中当且仅当该箱子的所有的维度大小全部小于另一个箱子的相应维度, (注意箱子可以旋转,即箱子维度可以互换),求最 ...

  3. php配置伪静态的方法

    mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面.下面我详细说说它的使用方法 .检测Apache是否支持mod_rewrite 通过php提供的phpinfo()函数查看 ...

  4. java编程acm基础

    java还是不错的昂! import java.util.*; import java.io.*; public class text{ static int a=100; public static ...

  5. kuangbin_ShortPath K (POJ 3159)

    很简单的模板题 放在K那么后的位置的原因大概是 光看题意并不是很容易想到是用最短路解吧 奈何kuangbin分在了最短路专题 一发水过 #include <iostream> #inclu ...

  6. 修改host文件屏蔽视频广告和网站

    很多时候我们会需要屏蔽一些网站或者广告,类似XX网站,下木马病毒的网站,或者破解软件的时候.我们可以使用一些软件屏蔽,我这里是用windows系统自带的hosts文件来屏蔽的.这个文件有点类似精简版的 ...

  7. Vimdiff---VIM的比较和合并工具

    本文来自IBMDW   http://www.ibm.com/developerworks/cn/linux/l-vimdiff/ 源程序文件(通常是纯文本文件)比较和合并工具一直是软件开发过程中比较 ...

  8. PHP获得两个绝对路径的相对路径

    周末在家看面试题,没事儿写了个. 题目: 写一个函数,算出两个文件的相对路径 如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php';计算出 $b 相对于 $ ...

  9. mysql 1449 : The user specified as a definer ('root'@'%') does not exist ,mysql 赋给用户权限 grant all privileges on

    mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法 遇到了 SQLException: acce ...

  10. ws318 配置

    http://www.192ly.com/router-settings/huawei/ws318-sz.html