這篇文章為大家?guī)碛嘘P(guān)php中flock函數(shù)的詳細(xì)介紹。大部分實(shí)例都可以應(yīng)用到工作中,為此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)公司專注于裕安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供裕安營銷型網(wǎng)站建設(shè),裕安網(wǎng)站制作、裕安網(wǎng)頁設(shè)計(jì)、裕安網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開發(fā)服務(wù),打造裕安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供裕安網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
bool flock ( resource $handle , int $operation [, int &$wouldblock ] )
flock()允許執(zhí)行一個(gè)簡單的可以在任何平臺(tái)中使用的讀取/寫入模型(包括大部分的Unix派生版和windows)
在PHP 5.3.2版本之前,鎖會(huì)被 fclose() 釋放(在腳本結(jié)束后會(huì)自動(dòng)調(diào)用),現(xiàn)在需要手動(dòng)解鎖
operation
1.LOCK_SH 取得共享鎖(讀取的程序)
2.LOCK_EX 取得獨(dú)占鎖(寫入的程序)
3.LOCK_UN 釋放鎖定 (無論共享或獨(dú)占)
4.LOCK_NB 在flock()鎖定時(shí)不阻塞
a.php
b.php
先執(zhí)行a.php,然后執(zhí)行b.php
a取得獨(dú)占鎖,b只能等待,等a執(zhí)行完解除鎖定后才能執(zhí)行b,阻塞
a.php
b.php
先執(zhí)行a.php,然后執(zhí)行b.php
b不需要等待a執(zhí)行完就能輸出文件內(nèi)容,非阻塞
a.php
b.php
先執(zhí)行a.php,然后執(zhí)行b.php
b需要等待a執(zhí)行完,才能寫入數(shù)據(jù),阻塞
a.php
b.php
先執(zhí)行a.php,然后執(zhí)行b.php
b取不到獨(dú)占鎖,不需要等待a執(zhí)行完,而是直接返回取不到鎖提示,非阻塞
總結(jié):
使用共享鎖LOCK_SH,如果是讀取,不需要等待,但如果是寫入,需要等待讀取完成。
使用獨(dú)占鎖LOCK_EX,無論寫入/讀取都需要等待。
LOCK_UN,無論使用共享/讀占鎖,使用完后需要解鎖。
LOCK_NB,當(dāng)被鎖定時(shí),不阻塞,而是提示鎖定。
看完上述內(nèi)容,你們掌握flock函數(shù)的使用方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!