PHP文件加鎖實現(xiàn)多進(jìn)程讀寫同一文件

php是不支持多線程的,可以通過加鎖來實現(xiàn)多進(jìn)程同時操作同一文件:

<?php

$fp = fopen("1.txt", "w+");
if(flock($fp, LOCK_EX)){  //排他鎖
    fwrite($fp, "writing something here \n");
    flock($fp, LOCK_UN);
}else{
    echo 'cannot lock the file';
}
fclose($fp);

flock函數(shù)的第二個參數(shù)的意義為:
要取得共享鎖定(讀取的程序),將 lock 設(shè)為 LOCK_SH(PHP 4.0.1 以前的版本設(shè)置為 1)。
要取得獨占鎖定(寫入的程序),將 lock 設(shè)為 LOCK_EX(PHP 4.0.1 以前的版本中設(shè)置為 2)。
要釋放鎖定(無論共享或獨占),將 lock 設(shè)為 LOCK_UN(PHP 4.0.1 以前的版本中設(shè)置為 3)。
如果不希望 flock() 在鎖定時堵塞,則給 lock 加上 LOCK_NB(PHP 4.0.1 以前的版本中設(shè)置為 4)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • 接著上上節(jié) thread ,本節(jié)主要介紹mutex的內(nèi)容,練習(xí)代碼地址。<mutex>:該頭文件主要聲明了與互斥量...
    jorion閱讀 12,690評論 2 4
  • 42、PHP緩存技術(shù)有哪些?1)、全頁面靜態(tài)化緩存2)、頁面部分緩存3)、數(shù)據(jù)緩存4)、查詢緩存5)、按內(nèi)容變更進(jìn)...
    像敏銳的狗閱讀 831評論 1 2
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,791評論 11 349
  • 2017-12-17 今天晚上好像月信來了。 2017-12-07 昨天前天雙盤1小時。 2017-12-01 1...
    未來主人翁閱讀 145評論 0 0

友情鏈接更多精彩內(nèi)容