相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說明
- thinkPHP5框架實(shí)現(xiàn)分頁查詢功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
PHP 文件鎖與進(jìn)程鎖的使用示例
鑒于前面介紹了swoole,就借用swoole的服務(wù)器/客戶端與多進(jìn)程機(jī)制對(duì)鎖進(jìn)行說明.
這里只針對(duì)PHP的鎖機(jī)制進(jìn)行說明,由于SQL的鎖與其作用方式和應(yīng)用場景不同,將作另行說明.
1.文件鎖
- flock()
- fclose()
- swoole_lock()
文件鎖的可能應(yīng)用場景為:
1.限制并發(fā)多進(jìn)程或多臺(tái)服務(wù)器需要對(duì)同一文件進(jìn)行訪問和修改;
2.對(duì)參與文件I/O的進(jìn)程隊(duì)列化和人為阻塞;
3.在業(yè)務(wù)邏輯中對(duì)文件內(nèi)容進(jìn)行守護(hù);
下面是文件鎖C/S通訊機(jī)制下的使用,已經(jīng)省略了具體的通訊過程
Server(服務(wù)器通訊過程已略):
//監(jiān)聽數(shù)據(jù)發(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)); });