PHP基于文件鎖解決多進程同時讀寫一個文件問題示例
本文實例講述了PHP基于文件鎖解決多進程同時讀寫一個文件問題。分享給大家供大家參考,具體如下:
首先PHP是支持進程的而不支持多線程(這個先搞清楚了),如果是對于文件操作,其實你只需要給文件加鎖就能解決,不需要其它操作,PHP的flock已經幫你搞定了。
用flock在寫文件前先鎖上,等寫完后解鎖,這樣就實現(xiàn)了多線程同時讀寫一個文件避免沖突。大概就是下面這個流程
/* *flock(file,lock,block) *file 必需,規(guī)定要鎖定或釋放的已打開的文件 *lock 必需。規(guī)定要使用哪種鎖定類型。 *block 可選。若設置為 1 或 true,則當進行鎖定時阻擋其他進程。 *lock *LOCK_SH 要取得共享鎖定(讀取的程序) *LOCK_EX 要取得獨占鎖定(寫入的程序) *LOCK_UN 要釋放鎖定(無論共享或獨占) *LOCK_NB 如果不希望 flock() 在鎖定時堵塞 /* if (flock($file,LOCK_EX)) { fwrite($file,'write more words'); flock($file,LOCK_UN); } else { //處理錯誤邏輯 } fclose($file); )
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php文件操作總結》、《PHP常用遍歷算法與技巧總結》、《PHP數(shù)據(jù)結構與算法教程》、《php程序設計算法總結》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
PHP setcookie指定domain參數(shù)后,在IE下設置cookie失效的解決方法
setcookie函數(shù)指定domain參數(shù)后,在IE下的表現(xiàn)和在chrome、firefox中的表現(xiàn)不同,這不是php setcookie函數(shù)的問題,這是IE的問題。2011-09-09PHP屏蔽蜘蛛訪問代碼及常用搜索引擎的HTTP_USER_AGENT
屏蔽蜘蛛相信每一位站長都不希望這樣做吧,因為蜘蛛的訪問就沒有用戶的瀏覽,直接會給我們帶來一定損失,不過也有例外,某些網(wǎng)站就不希望被蜘蛛爬行,接下來為你介紹屏蔽蜘蛛的php代碼2013-03-03php中使用Imagick實現(xiàn)圖像直方圖的實現(xiàn)代碼
玩過單反相機的人應該都知道圖像直方圖(Image Histogram),簡單點說,它通過計算每個色階在總像素中所占的比例來反映圖像的曝光情況。2011-08-08PHP中數(shù)字檢測is_numeric與ctype_digit的區(qū)別介紹
PHP中的兩個函數(shù)is_numeric和ctype_digit都是檢測字符串是否是數(shù)字,但也存在一點區(qū)別2012-10-10