PHP写一段代码,确保多个进程同时写入一个文件成功
这个需求是在软件设计过程常见的加锁。
学计算机的同学都应该知道,这个是在《计算机操作系统》课程上有这个知识点。
主要要考虑的是进程的同步,也就是进程对资源的互斥访问。
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,代码还不算很多吧!这个不要记代码,重要的是要理解每一个函数的意思,以及每一个语句的意思。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。