1、參數說明spa
$handle: 文件資源code
$operation: 鎖的類型blog
LOCK_SH: 共享鎖進程
LOCK_EX: 排他鎖資源
LOCK_UN: 釋放鎖io
$wouldblock: 設置爲true的時候,鎖定文件時,會阻止其餘進程class
2、具體實現代碼file
/** * 阻塞模式 */ $file = fopen("lock.txt", "r"); //進行排它型鎖定,阻塞:後面的進程會一直等待前面的進程執行完畢 if (flock($file, LOCK_EX)) {//加鎖 //TODO 業務代碼... //釋放鎖 flock($file, LOCK_UN); } fclose($file);
/** * 非阻塞模式 */ $file = fopen("lock.txt", "r"); //進行排它型鎖定,非阻塞:只要當前文件有鎖存在,那麼直接返回 if (flock($file, LOCK_EX | LOCK_NB)) {//加鎖 //TODO 業務代碼... //釋放鎖 flock($file, LOCK_UN); } else { die("系統繁忙,稍後重試"); } fclose($file);