搜索
首页后端开发php教程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中关于协程与阻塞的深入理解

经典型和非阻塞型

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)