一、参数说明
$handle: 文件资源
$operation: 锁的类型
LOCK_SH: 共享锁
LOCK_EX: 排他锁
LOCK_UN: 释放锁
$wouldblock: 设置为true的时候,锁定文件时,会阻止其他进程
二、具体实现代码
/** * 阻塞模式 */ $file = fopen("lock.txt", "r"); //进行排它型锁定,阻塞:后面的进程会一直等待前面的进程执行完毕 if (flock($file, LOCK_EX)) {//加锁 //Todo 业务代码... //释放锁 flock($file, LOCK_UN); } fclose($file);
/** * 非阻塞模式 */ $file = fopen("lock.txt", "r"); //进行排它型锁定,非阻塞:只要当前文件有锁存在,那么直接返回 if (flock($file, LOCK_EX | LOCK_NB)) {//加锁 //Todo 业务代码... //释放锁 flock($file, LOCK_UN); } else { die("系统繁忙,稍后重试"); } fclose($file);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。