相關關鍵詞
關于我們
最新文章
PHP 文件鎖與進程鎖的使用示例
鑒于前面介紹了swoole,就借用swoole的服務器/客戶端與多進程機制對鎖進行說明.
這里只針對PHP的鎖機制進行說明,由于SQL的鎖與其作用方式和應用場景不同,將作另行說明.
1.文件鎖
- flock()
- fclose()
- swoole_lock()
文件鎖的可能應用場景為:
1.限制并發(fā)多進程或多臺服務器需要對同一文件進行訪問和修改;
2.對參與文件I/O的進程隊列化和人為阻塞;
3.在業(yè)務邏輯中對文件內容進行守護;
下面是文件鎖C/S通訊機制下的使用,已經省略了具體的通訊過程
Server(服務器通訊過程已略):
//監(jiān)聽數(shù)據發(fā)送事件 $serv->on('receive', function ($serv, $fd, $from_id, $data) { $serv->send($fd, "ServerEnd"); $p_file = "locktest.txt"; var_dump(file_get_contents($p_file)); });