首页 > 代码库 > PHP写一段代码,确保多个进程同时写入一个文件成功
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,代码还不算很多吧!这个不要记代码,重要的是要理解每一个函数的意思,以及每一个语句的意思。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。