91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP 文件鎖

發布時間:2020-07-14 11:28:11 來源:網絡 閱讀:1497 作者:努力的C 欄目:web開發

之前面試拼多多的時候記得提到過文件鎖這樣的一個概念。當時并不知道是什么。今天工作了,遇到過數據庫鎖,MC鎖,今天又偶爾發現了PHP自帶的文件鎖。flock

http://php.net/manual/zh/function.flock.php

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

flock() 允許執行一個簡單的可以在任何平臺中使用的讀取/寫入模型(包括大部分的 Unix 派生版和甚至是 Windows)。

在 PHP 5.3.2版本之前,鎖也會被 fclose() 釋放(在腳本結束后會自動調用)。

PHP 支持以咨詢方式(也就是說所有訪問程序必須使用同一方式鎖定, 否則它不會工作)鎖定全部文件的一種輕便方法。 默認情況下,這個函數會阻塞到獲取鎖;這可以通過下面文檔中 LOCK_NB 選項來控制(在非 Windows 平臺上)。

handle
文件系統指針,是典型地由 fopen() 創建的 resource(資源)。

operation
operation 可以是以下值之一:

LOCK_SH取得共享鎖定(讀取的程序)。
LOCK_EX 取得獨占鎖定(寫入的程序。
LOCK_UN 釋放鎖定(無論共享或獨占)。
如果不希望 flock() 在鎖定時堵塞,則是 LOCK_NB(Windows 上還不支持)。

wouldblock
如果鎖定會堵塞的話(EWOULDBLOCK 錯誤碼情況下),可選的第三個參數會被設置為 TRUE。(Windows 上不支持)

返回值 ?

成功時返回 TRUE, 或者在失敗時返回 FALSE。

<?php
$fp = fopen('./a.lock','r');
if(flock($fp,LOCK_EX)){
echo date("Y-m-d H:i:s",time());
sleep(10);
flock($fp,LOCK_UN);
}else {
echo "LOCKing.........";
}
fclose($fp);

這是獨占鎖,誰搶到了,別就只能阻塞等待結束了。

<?php
$fp = fopen('./a.lock','r');
if(flock($fp,LOCK_EX | LOCK_NB)){
echo date("Y-m-d H:i:s",time());
sleep(10);
flock($fp,LOCK_UN);
}else {
echo "LOCKing.........";
}
fclose($fp);

如果不想阻塞等待,可以用LOCK_NB 直接返回else中的內容

<?php
$fp = fopen('./a.lock','r');
if(flock($fp,LOCK_SH)){
echo date("Y-m-d H:i:s",time());
sleep(10);
flock($fp,LOCK_UN);
}else {
echo "LOCKing.........";
}
fclose($fp);

這里是共享鎖,可以一起讀寫。。。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

饶阳县| 玛曲县| 肃北| 洪雅县| 乌兰浩特市| 蒲江县| 金昌市| 鄂伦春自治旗| 乌拉特中旗| 巧家县| 梁平县| 南澳县| 安宁市| 剑河县| 象州县| 佛学| 陆丰市| 墨脱县| 白玉县| 穆棱市| 宁远县| 信阳市| 特克斯县| 同心县| 五原县| 黄陵县| 都兰县| 嫩江县| 襄城县| 麻城市| 新巴尔虎右旗| 克山县| 惠安县| 米易县| 错那县| 乌拉特后旗| 正宁县| 龙岩市| 赤壁市| 册亨县| 阳山县|