PHP 利用文件锁处理高并发

PHP 利用文件锁处理高并发

利用flock()函数对文件进行加锁(排它锁),实现并发按序进行。

 

  flock(file,lock,block)有三个参数。

 

  file:已经打开的文件

 

  lock:锁的类型

 

    LOCK_SH:共享锁(读锁)

 

    LOCK_EX:独占锁定(排它锁,写锁)

 

    LOCK_UN:解锁

 

    LOCK_NB:如果希望在文件锁定时阻塞进程,那么需要加上该参数

 

  block:设置为true的时候,锁定文件时,会阻止其他进程

 

  下面是一个demo:

 

提示:在执行fclose()的时候文件会自动解锁,所以可以省略解锁的代码。