利用flock()函数对文件进行加锁(排它锁),实现并发按序进行。
flock(file,lock,block)有三个参数。
lock:锁的类型
LOCK_SH:共享锁(读锁)
LOCK_EX:独占锁定(排它锁,写锁)
LOCK_UN:解锁
LOCK_NB:如果不希望在文件锁定时阻塞进程,那么需要加上该参数
block:设置为true的时候,锁定文件时,会阻止其他进程
// 文件锁测试
$file=fopen(root_path().'LICENSE.txt','r');
// 非阻塞的独占锁定
if(flock($file,LOCK_EX | LOCK_NB)){
// 这里写逻辑操作
sleep(1);
// 解锁
$result="访问成功";
flock($file,LOCK_UN);
}else{
$result="文件锁定中";
}
fclose($file);
return json(['result'=>$result]);
通过jmeter的响应断言判断结果是否正确!