国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP中鎖機(jī)制的應(yīng)用

2020-03-22 18:42:12
字體:
供稿:網(wǎng)友
這篇文章給大家介紹的文章內(nèi)容是關(guān)于PHP中鎖機(jī)制的應(yīng)用,有很好的參考價(jià)值,希望可以幫助到有需要的朋友。

應(yīng)用環(huán)境

解決高并發(fā),庫存為負(fù)數(shù)的情況

阻塞模式

如果其他進(jìn)程已經(jīng)加鎖文件,當(dāng)前進(jìn)程會(huì)一直等其他進(jìn)程解鎖文件后繼續(xù)執(zhí)行

flock($fp, LOCK_EX) // 文件鎖

非阻塞模式

如果其他進(jìn)程已經(jīng)加鎖文件,當(dāng)前進(jìn)程不會(huì)等其他進(jìn)程解鎖文件,直接返> 回,也就是直接忽略加鎖的代碼到關(guān)閉文件那塊

flock($fp,LOCK_EX | LOCK_NB) // 文件鎖

代碼

flock($fp, LOCK_EX)flock($fp,LOCK_EX | LOCK_NB) 換一下就行,其他都一樣

<?php$fp = fopen('lock.txt', 'r');if( flock($fp, LOCK_EX) ){      // flock($fp,LOCK_EX | LOCK_NB)    $info = D()->query('SELECT surplus_total_num FROM tb_product WHERE id=1 LIMIT 1');    if( $info['surplus_total_num'] > 0 ){        D()->execute('UPDATE tb_product SET surplus_total_num = surplus_total_num - 1  WHERE id=1');        $isSurplusProduct = 1;    }else{        $isSurplusProduct = 0;    }    flock($fp, LOCK_UN);}fclose($fp);if( !$isSurplusProduct ) exit('已經(jīng)沒有產(chǎn)品了');
并發(fā)測(cè)試

查看數(shù)據(jù)庫的庫存是否一致保持為0 ab參數(shù):-c:并發(fā)數(shù);-n:總請(qǐng)求數(shù)

ab -c 20 -n 1000 http://www.test.com/test.php

相關(guān)推薦:

php如何實(shí)現(xiàn)等比例html' target='_blank'>壓縮圖片的代碼

php命令行編寫shell命令的實(shí)例

以上就是PHP中鎖機(jī)制的應(yīng)用的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注 其它相關(guān)文章!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴安盟| 新密市| 巴林左旗| 曲松县| 政和县| 托克逊县| 肇东市| 葫芦岛市| 五寨县| 崇义县| 始兴县| 姚安县| 琼海市| 临西县| 寿光市| 全州县| 宁陵县| 蕲春县| 忻州市| 黔西县| 临朐县| 永善县| 东至县| 隆德县| 淮滨县| 封开县| 东乡县| 屏东县| 宁津县| 九龙坡区| 南安市| 枣阳市| 长沙市| 二连浩特市| 观塘区| 蒲江县| 宝应县| 襄樊市| 漯河市| 红安县| 乐清市|