php 文件锁解决并发问题

Posted 大雾哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 文件锁解决并发问题相关的知识,希望对你有一定的参考价值。

阻塞(等待)模式:

 1 <?php
 2 $fp = fopen("lock.txt", "r");
 3 if(flock($fp,LOCK_EX))
 4 {
 5   //.. do something
 6   flock($fp,LOCK_UN);//解锁
 7 } else {
 8    echo ‘lock!‘;
 9 }
10 fclose($fp);
11 ?>

非阻塞模式:

<?php
$fp = fopen("lock.txt", "r");
if(flock($fp,LOCK_EX | LOCK_NB))
{
  //..do something
  flock($fp,LOCK_UN);//解锁
} else {
  echo "系统繁忙,请稍后再试";
}
fclose($fp);
?>

 

以上是关于php 文件锁解决并发问题的主要内容,如果未能解决你的问题,请参考以下文章

PHP.37-扩展-锁机制解决并发-MySQL锁PHP文件锁

php文件锁解决少量并发问题

php中并发读写文件冲突的解决方案(文件锁应用示例)

PHP+MySQL锁解决高并发

PHP+MySQL锁解决高并发

PHP解决并发问题的几种实现