PHP文件鎖定寫(xiě)入實(shí)例解析
本文以實(shí)例講述了PHP文件寫(xiě)入方法,以應(yīng)對(duì)多線程寫(xiě)入,具體代碼如下:
function file_write($file_name, $text, $mode='a', $timeout=30){ $handle = fopen($file_name, $mode); while($timeout>0){ if ( flock($handle, LOCK_EX) ) { // 排它性的鎖定 $timeout--; sleep(1); } } if ( $timeout > 0 ){ fwrite($handle, $text.'\n'); flock($handle, LOCK_UN); fclose($handle); //釋放鎖定操作 return true; } return false; }
其中flock(int $handle, int $operation)函數(shù)操作的 handle 必須是一個(gè)已經(jīng)打開(kāi)的文件指針。
operation 可以是以下值之一:
要取得共享鎖定(讀取的程序),將 operation 設(shè)為 LOCK_SH(PHP 4.0.1 以前的版本設(shè)置為 1)。
要取得獨(dú)占鎖定(寫(xiě)入的程序),將 operation 設(shè)為 LOCK_EX(PHP 4.0.1 以前的版本中設(shè)置為 2)。
要釋放鎖定(無(wú)論共享或獨(dú)占),將 operation 設(shè)為 LOCK_UN(PHP 4.0.1 以前的版本中設(shè)置為 3)。
如果不希望 flock() 在鎖定時(shí)堵塞,則給 operation 加上 LOCK_NB(PHP 4.0.1 以前的版本中設(shè)置為 4)。
此外, fclose()用來(lái)釋放鎖定操作,在代碼執(zhí)行完畢時(shí)調(diào)用。
- PHP讀寫(xiě)文件高并發(fā)處理操作實(shí)例詳解
- php處理?yè)屬?gòu)類(lèi)功能的高并發(fā)請(qǐng)求
- php結(jié)合redis實(shí)現(xiàn)高并發(fā)下的搶購(gòu)、秒殺功能的實(shí)例
- php 根據(jù)url自動(dòng)生成縮略圖并處理高并發(fā)問(wèn)題
- PHP flock 文件鎖詳細(xì)介紹
- PHP程序中的文件鎖、互斥鎖、讀寫(xiě)鎖使用技巧解析
- PHP文件鎖函數(shù)flock()詳細(xì)介紹
- PHP 文件鎖與進(jìn)程鎖的使用示例
- PHP基于文件鎖解決多進(jìn)程同時(shí)讀寫(xiě)一個(gè)文件問(wèn)題示例
- PHP使用文件鎖解決高并發(fā)問(wèn)題示例
相關(guān)文章
php中注冊(cè)器模式類(lèi)用法實(shí)例分析
這篇文章主要介紹了php中注冊(cè)器模式類(lèi)用法,以實(shí)例形式分析了注冊(cè)器讀寫(xiě)類(lèi)的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Laravel實(shí)現(xiàn)隊(duì)列的示例代碼
這篇文章主要為大家詳細(xì)介紹了Laravel實(shí)現(xiàn)隊(duì)列的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)和借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)游戲2023-02-02PHP備份/還原MySQL數(shù)據(jù)庫(kù)的代碼
之前是采用PHP讀取數(shù)據(jù)庫(kù)結(jié)構(gòu)和內(nèi)容,然后寫(xiě)文件,這樣可能會(huì)導(dǎo)致導(dǎo)出的文件不一定能百分百導(dǎo)入到MySQL中去,想想之后采用MySQL自帶的導(dǎo)入導(dǎo)出命令最保險(xiǎn)2011-01-01PHP使用ODBC連接數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了PHP使用ODBC連接數(shù)據(jù)庫(kù)的方法,涉及php使用ODBC操作數(shù)據(jù)庫(kù)的基本技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07PHP函數(shù)shuffle()取數(shù)組若干個(gè)隨機(jī)元素的方法分析
這篇文章主要介紹了PHP函數(shù)shuffle()取數(shù)組若干個(gè)隨機(jī)元素的方法,結(jié)合實(shí)例形式詳細(xì)分析了shuffle函數(shù)的功能,定義,使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-04-04PHP實(shí)現(xiàn)提取一個(gè)圖像文件并在瀏覽器上顯示的代碼
去年做過(guò)一個(gè)項(xiàng)目,要把用戶上傳的圖像文件列出文字清單,當(dāng)用戶點(diǎn)擊一個(gè)文件名后,就可以顯示這個(gè)圖像.今天有機(jī)會(huì)重新考慮這個(gè)功能,在php手冊(cè)中發(fā)現(xiàn)幾行代碼,簡(jiǎn)潔明快,完全能實(shí)現(xiàn)我要的功能,還不需要GD庫(kù)2012-10-10PHP7基于curl實(shí)現(xiàn)的上傳圖片功能
這篇文章主要介紹了PHP7基于curl實(shí)現(xiàn)的上傳圖片功能,結(jié)合實(shí)例形式對(duì)比分析了php5.5之前與php7版本的curl圖片上傳功能相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2018-05-05