概述
PHP用文件锁模拟进程锁,实现原子操作
|
浏览:353
|
更新:
2014-06-26 17:31
笔者碰到一个问题:用PHP实现原子操作,而PHP本身并没有提供进程锁机制?那么如何用PHP实现原子操作呢,幸好PHP有文件锁机制,下面笔者就介绍下如何通过文件锁模拟进程锁实现原子操作。
原子操作的代码之前,使用排他锁打开某个文件,代码如下:
$fp = fopen( LOCK_FILE_PATH, "r" );
if (!$fp) {
echo "Failed to open the lock file!
";exit(1);//异常处理
}
flock ( $fp, LOCK_EX );
原子操作的代码之后,对该文件解锁,并关闭文件,代码如下:
flock ( $fp, LOCK_UN );
fclose ( $fp );
整体伪代码为:
define("LOCK_FILE_PATH", "/tmp/lock");
if( !file_exists(LOCK_FILE_PATH) ){
$fp = fopen( LOCK_FILE_PATH, "w" );
fclose ( $fp );
}
$fp = fopen( LOCK_FILE_PATH, "r" );
if (!$fp) {
echo "Failed to open the lock file!
";exit(1);//异常处理
}flock ( $fp, LOCK_EX );
//此处添加原子操作代码
flock ( $fp, LOCK_UN );
fclose ( $fp );
以上便可实现PHP原子操作,避免冲突。
转载于:https://blog.51cto.com/haocaige/1693063
最后
以上就是自信鞋垫为你收集整理的PHP用文件锁模拟进程锁PHP用文件锁模拟进程锁,实现原子操作的全部内容,希望文章能够帮你解决PHP用文件锁模拟进程锁PHP用文件锁模拟进程锁,实现原子操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复