手机
当前位置:查字典教程网 >编程开发 >php教程 >模拟flock实现文件锁定
模拟flock实现文件锁定
摘要:主要提供了一种思路。$lock0和$lock1就是文件锁定的标识符,当文件被某一用户打开的时候,$lock0和$lock1就会产生,当该文件...

主要提供了一种思路。

$lock0和$lock1就是文件锁定的标识符,当文件被某一用户打开的时候,$lock0和$lock1就会产生,当该文件没打开则不存在。

其实最关键就是有个标识符来表示当前这个文件的状态,$lock0和$lock1就是起这样的作用。

复制代码 代码如下:

<?php

//Lockafile,timingoutifittakestoolong.

functionlock($lock,$tries){

$lock0=".{$lock}0";

$lock1=".{$lock}1";

for($i=0;$i<$tries;$i++){

if(!is_file($lock0)){

touch($lock0);

if(!is_file($lock1)){

touch($lock1);

return1;

}

}

usleep(100);

}

return0;

}

//Unlockafile.

functionunlock($lock){

unlink(".{$lock}1");

unlink(".{$lock}0");

}

//Usageexample.

$filename="somefile";

$data="stuffandthingsn";

$tries=10;

if(lock($filename,$tries)){

$h=fopen($filename,"a")ordie();

fwrite($h,$data);

fclose($h);

/**

*另外一个进程写文件,检查是否锁定

*/

if(lock($filename,$tries)){

$h2=fopen($filename,"a")ordie();

fwrite($h2,'checklock');

fclose($h2);

}else{

//die("Failedtolock$filenameafter".($tries*100)."milliseconds!";

}

unlock($filename);

}else{

//die("Failedtolock$filenameafter".($tries*100)."milliseconds!";

}

?>

【模拟flock实现文件锁定】相关文章:

php使用cookie实现记住用户名和密码实现代码

递归实现php数组转xml的代码分享

用PHP实现文件上传二法

PHP4中实现动态代理

PHP中实现图片的锐化

PHP永久登录、记住我功能实现方法和安全做法

用libTemplate实现静态网页的生成

用Socket发送电子邮件

php实现文本数据导入SQL SERVER

PHP实现文件安全下载

精品推荐
分类导航