文件锁的玩法

    群里大家一起交流:410028331

1、普通两个文件同一时候往一个文件里写入内容效果

index-1.php

<?php

$file = ‘temp.txt‘;

$fp = fopen($file,‘a‘);

for($i = 0;$i <10;$i++)

{

fwrite($fp, "11111111<br />");

sleep(1);

}

fclose($fp);

?

>

index-2.php

<?php

$file = ‘temp.txt‘;

$fp = fopen($file,‘a‘);

for($i = 0;$i <10;$i++)

{

fwrite($fp, "22222222<br />");

}

fclose($fp);

?>

当同一时候运行后,(先1后2   要快立即运行两个)

进入temp.txt  会看到     11111111<br />11111111<br />22222222<br />22222222<br />22222222<br />22222222<br />22222222<br />11111111<br />11111111<br />11111111<br />

是混乱的。那么实际实现功能上就会出现故障。

?????????

那么这样的情况下。怎样实现并发对一个文件写入,而先来先写排序写入呢?

那么用到文件锁,这是一个非常好地选择

index-1.php改为

<?

php

$file = ‘temp.txt‘;

$fp = fopen($file,‘a‘);

if(flock($fp,LOCK_EX))

{

for($i = 0;$i <10;$i++)

{

fwrite($fp, "11111111<br />");

sleep(1);

}

flock($fp,LOCK_UN);

}

fclose($fp);

index-2.php改为:

<?php

$file = ‘temp.txt‘;

$fp = fopen($file,‘a‘);

if(flock($fp,LOCK_EX))

{

for($i = 0;$i <10;$i++)

{

fwrite($fp, "22222222<br />");

}

flock($fp,LOCK_UN);

}

fclose($fp);

再去运行发现temp.txt中的结果是这种(先1立即2,由于1有sleep会运行一段时间,仅仅要能保证1未完就运行了2就可以)

结果:   11111111<br />11111111<br /> ...   22222222<br />...

也就是1运行完了后运行的2

时间: 2024-08-02 15:13:53

文件锁的玩法的相关文章

【精品】北京赛车计划冠军定位玩法技巧

車車是一種投資,我們的目標是:細水長流,見好就收,不求日金千金,只求長期穩定!許多人賠本的原因:1. 資金不足,卻大把下注,跟到第4期不出,錢不夠了,心慌了.有人孤注一擲,衝到第5期中了,嚇的半死.有人不敢跟,第5期出號了,氣死, 然後再跟新計劃,沒錢了,郁悶死.這兩種做法都不對,既然是以投資的心態做事,就應該計劃好翻倍的本錢,做到99%的穩賺,狀況不對就要及時止損. 看著連續中,就是不敢跟,最後咬牙跟了,馬上挂了.于是開始哭,我運氣咋這麽差.不買就中,一買就挂.相反,有些人專門等挂,一挂就上,

Aircrack除破解WiFi密码外的趣味玩法

Aircrack这种屌爆了的攻击测试套件在网上居然只有用它破解WiFi密码的教程,在这里我来扒个冷门,介绍下这款杀器的其他一些有趣的玩法. 0×00:首先你需要一张usb无线网卡 ifconfig查看可以正常识别,如果不行看这里. 0×01:干坏或者不坏的事情前先修改MAC ifconfig [INTERFACE] down#关闭网卡 #[INTERFACE]是指你的无线网卡,一般为wlan0,下不再说明 macchanger -m [MAC] [INTERFACE]#修改MAC,[MAC]是你

关于摇红包 | 必须知道的几种玩法

逢年过节,搞活动 微信红包,摇一摇 佰睿科技摇摇啦应用平台提供各种摇红包玩法 [玩法一]:摇一摇红包 功能简介:这种玩法与16年春节微信官方搞的摇红包活动功能一样,采用ibeacon蓝牙技术,通过"微信摇一摇周边"入口参与活动,用户打开手机蓝牙,摇一摇即可领取现金红包并且可以强制/默认用户关注公众号,所获得的红包金额直接转入用户零钱包,支持设置固定/随机金额红包,可限定参与活动用户,支持领取红包后自定义广告跳转,可设定中奖概率. 功能特点:优化了用户操作层级,红包金额直接转入用户零钱包

黑客玩法,插上你的专有U盘才能开机

这个玩法的效果是这样的: 1.插上你的专有U盘,按电脑开机按钮,电脑正常启动运行: 2.如果不插专有优U盘,按电脑开机按钮,进入桌面后1秒钟电脑自动关机,无法使用.也就是说,没有优U盘将无法使用你的电脑. 下面教你如何实现上面的玩法: 第一步:在自己的U盘(假设是F盘)里,新建一个文本文件,内容可以为空,另存为"密码U盘.txt"文件. 第二步:在电脑的D盘里,新建一个文本文件,编辑该文本文件,文本文件内容如下: @echo off if not exist F:\密码U盘.txt s

历数依赖注入的N种玩法

历数依赖注入的N种玩法 在对ASP.NET Core管道中关于依赖注入的两个核心对象(ServiceCollection和ServiceProvider)有了足够的认识之后,我们将关注的目光转移到编程层面.在ASP.NET Core应用中基于依赖注入的编程主要涉及到两个方面,它们分别是将服务注册到ServiceCollection中,和采用注入的方式利用ServiceProvider提供我们所需的服务.我们先来讨论ASP.NET Core应用中如何进行服务注册.[本文已经同步到<ASP.NET

JavaScript的三种工业化玩法

JavaScript的三种工业化玩法 软件工程中任何的语言如果想要写出健壮的代码都需要锋利的工具,当然JavaScript也不例外,很多朋友刚入门的时候往往因为工具选的不对而事半功倍,JavaScript同样需要软件调试技术,希望本文总结的三种工具会对大家的学习有所帮助. 任何语言的学习都离不开实践,不写代码是永远学不会编程的,当然javascript也不例外,很多人推荐直接浏览器调试,个人觉得这个推荐应该是非常初级的,比如Chrome, Firefox确实提供了实用的前端调试工具,但是个人认为

类Kingdom Rush塔防游戏的数值设计(一)&mdash;&mdash;玩法概述和基础战斗模型建立

玩法概述---- Kingdom Rush,即皇家守卫军,IronHide出的一款塔防游戏.其涂鸦的风格.独特的英雄和士兵系统.较为庞大的战斗场面,在塔防游戏中独树一帜,取得了巨大的成功. 在这里,基于Kingdom Rush的核心玩法,推拟出游戏所需的核心战斗数值(包括战斗内成长数值). 首先,需要明确游戏的玩法. 游戏大概的战斗场景如下 战斗地图区域划分 1.出怪点:2.预设路径:3.防御塔建造点:4.防守点 战斗单位划分 我方 1.防御塔:2.英雄:3.士兵 敌方 1.怪物 游戏玩法概述

windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)

windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) 简单说几句 在mongodb中3元素:db(数据库).collection(集合).document(文档) 其中collection类似于数据库中的表,document类似于行,这样一来我们就将内容对比起来记忆学习了. 数据格式 MongoDB documents是BSON格式(一种类json的一种二进制形式的存

【转】4G18的低成本NA玩法

首先是要再次强调一次,4G18的缸径是76MM,冲程是87.5MM.属于典型的长冲程低转发动机! 这种设计的优点是比较适合市区走停的工作状况,省油. 如果要针对改装方案而言因为这种低转时便可输出大扭矩的设计,本来是很适合用小涡轮推低增压的改装方式. 可以在极低的转速下爆发出惊人的扭力,尽管0-100的成绩不会非常优异,但其实这个数据并没太大意义的,实际驾驶感觉是很低的转速便可以档档有力.随时爆发强大的加速能力. 不过毕竟上涡轮的资金和技术门槛还是比较高,并不是所有人能接受的. 如果资金允许,技术