全网整合营销服务商

营销型网站+SEO优化+关键词快排=一站式服务

免费咨询热线:15959292472

[庆阳seo公司推荐久澳]PHP如何使用文件锁解决高并发问题

  本文主要和大家介绍了PHP使用文件锁解决高并发问题,结合实例形式分析了php阻塞模式与非阻塞模式文件锁解决高并发的相关使用技巧,需要的朋友可以参考下,希望能帮助到大家。

  新建一个.txt文件★▼,文件中什么都不用写▷□…。茂名市小程序制作公司

  【一】…◁▪.阻塞(等待)模式:(只要有其他进程已经加锁文件,当前进程会一直等其他进程解锁文件)

  


 

  

<▽○△;?php
//连接数据库
$con=mysqli_connect("192.168■△.2.186"○▪-▲;,"▲•…=;root"▲•;□▼◇▼,"••●;root"▼◁;■-,"test")●□◁;
//查询商品数量是否大于0,大于0才能下单…■◆△,并减少库存
$fp = fopen("△◁;lock◆=.txt", "=•□△;r")▼◇;
//加锁
if(flock($fp,LOCK_EX))
{
 $res=mysqli_fetch_assoc(mysqli_query($con,'○◁▷◆;SELECT total FROM shop WHERE id=1 LIMIT 1'))▼■○◆;
 if($res['total']>0){mysqli_query($con,'UPDATE shop SET total=total-1 WHERE id=1')★○■;}
 //执行完成解锁
 flock($fp,LOCK_UN)•◁•▪;
}
//关闭文件
fclose($fp);
unset($res)▲◇□☆;
mysqli_close($con);
?>

 

  【二】.非阻塞(等待)模式:(只要有其他进程已经加锁文件★▪□◁,当前进程不会等其他进程解锁文件直接返回)

  


 

  

<☆◁;?php
//连接数据库
$con=mysqli_connect("192●●.168.2.186","root","■★■□;root","test");
//查询商品数量是否大于0,大于0才能下单,并减少库存
$fp = fopen("■●◆■;lock◁••.txt"•■•;, "r");
//加锁
if(flock($fp,LOCK_EX 

 

   LOCK_NB)) { $res=mysqli_fetch_assoc(mysqli_query($con☆○,'▲▽□;SELECT total FROM shop WHERE id=1 LIMIT 1')); if($res['total']>▽◁•▼;0){mysqli_query($con-▲,'UPDATE shop SET total=total-1 WHERE id=1');} //执行完成解锁 flock($fp▼▪◆,LOCK_UN); } //关闭文件 fclose($fp); unset($res); mysqli_close($con); ?>

 

  如果连接数据库费时间的话,下面有个简单的小demo,可以更直观的理解下。

  demo…●▪.php

  

 

  

<▷○-;◁▲△?php
$fp = fopen("◆◆▷☆;file_lock.txt"=▼, "r"▷□;);
// 加锁
if(flock($fp, LOCK_EX))
{
 sleep(10)▪△…;
 echo 1;
 //执行完成解锁
 flock($fp,LOCK_UN)•◇◆▲;
} else {
 echo 2;
}
//关闭文件
fclose($fp);

 

  demo2.php

  


 

  

<?php
$fp = fopen("file_lock◇△.txt", "•▽;r")□•=▪;
// 加锁(如果改成flock($fp, LOCK_EX 

 

   LOCK_NB)■▷●,demo2.php会直接返回2,[庆阳seo公司推荐久澳]否则会等待demo▪□◇=.php执行完返回1) if(flock($fp, LOCK_EX)) { echo 1; } else { echo 2; } //关闭文件 fclose($fp)■◇▽☆;

 

  同时运行两个文件△-▽,然后修改demo2中加锁机制◁◁,就可以看出来阻塞(等待)模式和非阻塞(等待)模式的区别了。

  但是这样会导致队列堵塞,假如10个人同一秒写入数据库,那就堵塞了○▪○▷,17 2020.10 [学seo那家培训公司好]如何将小程序插入公众号中 将小程序插入公众号中的方法: 第一步:公众号关联小程序 公众号关联小程序的方法: 公众号可以关联其他的小程序吗 注:小程序要放到公众号菜单需要先把小程序与公众号关联,如资阳市小程序制作公司第10个人会等待前9个都执行完才会执行!

  

 

  

 

  以上就是PHP如何使用文件锁解决高并发问题的详细内容,更多请关注久澳传媒编程栏目其它相关文章☆▽=●!

[庆阳seo公司推荐久澳]PHP如何使用文件锁解决高并发问题

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。