php使用flock堵塞写入文件和非堵塞写入文件
php使用flock堵塞写入文件和非堵塞写入文件
堵塞写入代码:(全部程序会等待上次程序运行结束才会运行,30秒会超时)
<?php
$file = fopen("test.txt","w+"); $t1 = microtime(TRUE);
if (flock($file,LOCK_EX))
{
sleep(10);
fwrite($file,"Write something");
flock($file,LOCK_UN);
echo "Ok locking file!";
}
else
{
echo "Error locking file!";
} fclose($file); $t2 = microtime(TRUE);
echo sprintf("%.6f",($t2-$t1));
非堵塞写入代码:(仅仅要文件被占用,则显示Error locking file!)
<? php
$file = fopen("test.txt","a+"); $t1 = microtime(TRUE);
if (flock($file,LOCK_EX|LOCK_NB))
{
sleep(10);
fwrite($file,"Write something");
flock($file,LOCK_UN);
echo "Ok locking file!";
}
else
{
echo "Error locking file!";
} fclose($file); $t2 = microtime(TRUE);
echo sprintf("%.6f",($t2-$t1));
php使用flock堵塞写入文件和非堵塞写入文件的更多相关文章
- php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解: 阻塞写入代码:(所有程序会等待上次程序执行结束才会执行,30秒会超时) <?php $file = fopen("test ...
- c# ftp创建文件(非上传文件)
c# ftp创建文件(非上传文件) 一.奇葩的故事: 今天项目中遇到这么个奇葩的问题,ftp文件传输完成后要在ftp目录下另一个文件夹下创建对应的空文件,听说是为了文件的完整性,既然这么说,那么就必 ...
- Linux下文件的堵塞与非堵塞对部分系统调用的影响
1.基本概念 所谓的堵塞,即内核在对文件操作I/O系统调用时.假设条件不满足(可能须要产生I/O),则内核会将该进程挂起.非堵塞则是发现条件不满足就会马上返回. 此外须要注意的是非堵塞并非轮询.不然就 ...
- Java IO:同步、非堵塞式IO(NIO)
转载请注明出处:jiq•钦's technical Blog 引言 JDK1.4中引入了NIO,即New IO,目的在于提高IO速度.特别注意JavaNIO不全然是非堵塞式IO(No-Blocking ...
- 《网络编程》非堵塞 I/O
概述 在前面文章中,我们介绍了 I/O 的五种模型<I/O 模型>.从那里能够知道,非堵塞式的 I/O 是进程调用 I/O 操作时.若数据未准备就绪.则马上返回一个 EWOULDBLOCK ...
- Linux 文件描写叙述符设置为非堵塞的方法
通过fcntl设置文件描写叙述符属性 fcntl即F_SETFL,F_GETFL的使用,设置文件的flags,堵塞设置成非堵塞,非堵塞设置成堵塞(这连个在server开发中能够封装为基本函数) 1.获 ...
- PHP关于文件与文件夹(1) 写入文件 文件权限 三、锁定文件
一.文件权限 总之中的一个切都是为了保证文件夹的安全,保证文件夹的安全比保证文件的安全更重要. 二.写入文件 file_put_contents($file,$data); //假设没有的话会创建. ...
- web服务-2、四种方法实现并发服务器-多线程,多进程,协程,(单进程-单线程-非堵塞)
知识点:1.使用多线程,多进程,协程完成web并发服务器 2.单进程-单线程-非堵塞也可以实现并发服务器 1.多进程和协程的代码在下面注释掉的部分,我把三种写在一起了 import socket im ...
- UNIX网络编程卷1 时间获取程序client TCP 使用非堵塞connect
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.当在一个非堵塞的 TCP 套接字(可使用 fcntl 把套接字变成非堵塞的)上调用 co ...
随机推荐
- static方法调用
Static方法调用,类名.方法名 int number = Integer.ParseInt(String ); 将字符串参数作为有符号的十进制整数进行解析 将数字解析成字节数组 Character ...
- c#将List<T>转换成DataSet
/// <summary> /// List<T> 转换成DataSet /// </summary> /// &l ...
- linux中sed的使用方法具体解释(对行数据的加入、删除等)
sed使用语法 [root@fwq test]# sed --help 使用方法: sed [选项]... {脚本(假设没有其它脚本)} [输入文件]... -n, --quiet, --silent ...
- JVM的重排序
重排序一般是编译器或执行时环境为了优化程序性能而採取的对指令进行又一次排序执行的一种手段.重排序分为两类:编译期重排序和执行期重排序,分别相应编译时和执行时环境. 在并发程序中,程序猿会特别关注不同进 ...
- CNN tflearn处理mnist图像识别代码解说——conv_2d参数解释,整个网络的训练,主要就是为了学那个卷积核啊。
官方参数解释: Convolution 2D tflearn.layers.conv.conv_2d (incoming, nb_filter, filter_size, strides=1, pad ...
- 机器翻译引擎的基本原理 ——LSTM
机器翻译引擎的基本原理 摘自:infoq 谷歌机器翻译 Zero-shot:零次 Training:训练 Google Neural Machine Translation:谷歌神经机器翻译 我们每 ...
- Mysql实战45讲 05讲深入浅出索引(下)极客时间 读书笔记
极客时间 Mysql实战45讲 04讲深入浅出索引(下)极客时间 笔记体会: 回表:回到主键索引树搜索的过程,称为回表覆盖索引:某索引已经覆盖了查询需求,称为覆盖索引,例如:select ID fro ...
- xBIM 基础16 IFC的空间层次结构
系列目录 [已更新最新开发文章,点击查看详细] 本篇介绍如何从文件中检索空间结构.IFC中的空间结构表示层次结构的嵌套结构,表示项目,站点,建筑物,楼层和空间.如果您查看IFC文档, 您会发现 ...
- Windows 10 Mobile 演示:插入耳机自动执行 APP
Windows Mobile 10 新特性:插入外部设备自动动作(如插入耳机执行 APP.打开小工具):另外可以找到最后一次使用设备地点和时间: http://www.tudou.com/progra ...
- dedecms如何把时间戳转换成正常时间格式
如果在datalist 可以用{dede:field.shijian function=strftime('%Y-%m-%d',@me)/} 如果不在datalist中调用的话,单独调用用<?p ...