国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP使用文件鎖解決高并發問題示例

PHP使用文件鎖解決高并發問題示例

2019-10-15 11:012016_Create PHP教程

這篇文章主要介紹了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,否則會等待demo.php執行完返回1)
if(flock($fp, LOCK_EX))
{
  echo 1;
} else {
  echo 2;
}
//關閉文件
fclose($fp);

同時運行兩個文件,然后修改demo2中加鎖機制,就可以看出來阻塞(等待)模式和非阻塞(等待)模式的區別了。

但是這樣會導致隊列堵塞,假如10個人同一秒寫入數據庫,那就堵塞了,第10個人會等待前9個都執行完才會執行!

希望本文所述對大家PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av一区二区在线观看 | 国产一区 | 久久久久国产精品 | 北条麻妃一区二区三区在线观看 | 天天操天天干天天爽 | 国产高清视频一区二区 | 久久噜噜噜精品国产亚洲综合 | 国产一二三区在线观看 | 午夜操操| 黄视频在线播放 | 君岛美绪一区二区三区在线视频 | av在线电影网站 | 久久久久99| 精品欧美 | 精品国产一区二区三区四区 | 神马久久久久久久 | 一区二区日韩精品 | 久久国内精品 | 亚洲激情在线观看 | 国产亚洲精品久久久久动 | 成人精品一区二区三区 | 国产成人一区二区啪在线观看 | 免费在线看黄 | 黄久久久 | 亚洲精品成人av | 欧美日韩免费视频 | 九九热精品在线播放 | 欧美日韩精品一区 | 99国产精品 | 色婷婷狠狠| 激情久久久 | 久久久久久久久综合 | 国产精品美女久久久久久久网站 | 国产精品高潮呻吟久久av野狼 | 久久成人免费视频 | 天堂va久久久噜噜噜久久va | 免费看黄的视频网站 | 国产精品高潮呻吟久久av野狼 | 伊人激情 | 国产高清一区二区 | 国产一区二区免费 |