PHP 利用檔案鎖處理高併發

2022-09-12 18:57:09 字數 1052 閱讀 9081

利用flock()函式對檔案進行加鎖(排它鎖),實現併發按序進行。

flock(file,lock,block)有三個引數。

file:已經開啟的檔案

lock:鎖的型別

lock_sh:共享鎖(讀鎖)

lock_ex:獨佔鎖定(排它鎖,寫鎖)

lock_un:解鎖

lock_nb:如果希望在檔案鎖定時阻塞程序,那麼需要加上該引數

block:設定為true的時候,鎖定檔案時,會阻止其他程序

下面是乙個demo:12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

classorder

//關閉檔案

fclose($file);

}

/**

* 非阻塞模式(只要當前檔案有鎖存在,那麼直接返回)

*/

publicfunctioncreateorder2()else

//關閉檔案

fclose($file);

}

}

PHP 利用檔案鎖處理高併發

利用flock 函式對檔案進行加鎖 排它鎖 實現併發按序進行。flock file,lock,block 有三個引數。file 已經開啟的檔案 lock 鎖的型別 lock sh 共享鎖 讀鎖 lock ex 獨佔鎖定 排它鎖,寫鎖 lock un 解鎖 lock nb 如果希望在檔案鎖定時阻塞程序...

PHP 利用檔案鎖處理高併發

利用flock 函式對檔案進行加鎖 排它鎖 實現併發按序進行。flock file,lock,block 有三個引數。file 已經開啟的檔案 lock 鎖的型別 lock sh 共享鎖 讀鎖 lock ex 獨佔鎖定 排它鎖,寫鎖 lock un 解鎖 lock nb 如果不希望在檔案鎖定時阻塞程...

php檔案鎖解決高併發

一阻塞模式 如果其他程序已經加鎖檔案,當前程序會一直等其他程序解鎖檔案後繼續執行 連線資料庫 con mysqli connect 192.168.2.186 root root test 查詢商品數量是否大於0,大於0才能下單,並減少庫存 fp fopen lock.txt r 加鎖if floc...