這篇文章主要介紹了PHP怎么使用文件鎖解決高并發(fā)問(wèn)題,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、臨夏網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為臨夏等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
新建一個(gè).txt文件,文件中什么都不用寫(xiě)。
【一】.阻塞(等待)模式:(只要有其他進(jìn)程已經(jīng)加鎖文件,當(dāng)前進(jìn)程會(huì)一直等其他進(jìn)程解鎖文件)
0){mysqli_query($con,'UPDATE shop SET total=total-1 WHERE id=1');} //執(zhí)行完成解鎖 flock($fp,LOCK_UN); } //關(guān)閉文件 fclose($fp); unset($res); mysqli_close($con); ?>
【二】.非阻塞(等待)模式:(只要有其他進(jìn)程已經(jīng)加鎖文件,當(dāng)前進(jìn)程不會(huì)等其他進(jìn)程解鎖文件直接返回)
0){mysqli_query($con,'UPDATE shop SET total=total-1 WHERE id=1');} //執(zhí)行完成解鎖 flock($fp,LOCK_UN); } //關(guān)閉文件 fclose($fp); unset($res); mysqli_close($con); ?>
如果連接數(shù)據(jù)庫(kù)費(fèi)時(shí)間的話,下面有個(gè)簡(jiǎn)單的小demo,可以更直觀的理解下。
demo.php
demo2.php
同時(shí)運(yùn)行兩個(gè)文件,然后修改demo2中加鎖機(jī)制,就可以看出來(lái)阻塞(等待)模式和非阻塞(等待)模式的區(qū)別了。
但是這樣會(huì)導(dǎo)致隊(duì)列堵塞,假如10個(gè)人同一秒寫(xiě)入數(shù)據(jù)庫(kù),那就堵塞了,第10個(gè)人會(huì)等待前9個(gè)都執(zhí)行完才會(huì)執(zhí)行!
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享PHP怎么使用文件鎖解決高并發(fā)問(wèn)題內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!
當(dāng)前名稱:PHP怎么使用文件鎖解決高并發(fā)問(wèn)題
網(wǎng)站鏈接:http://weahome.cn/article/pcieeo.html