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