在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、阻塞模式(如果其它进程已经加锁文件,当前进程会等其它进程解锁后继续执行) <?php $handle = fopen('lock.txt', 'r'); //锁定 if(flock($handle,LOCK_EX)){ //to do something //解锁 flock($handle, LOCK_UN); } //关闭文件 fclose($handle); ?> 2、非阻塞模式(如果其它进程已经加锁文件,当前进程会执行else里面的内容,不会等待文件解锁) <?php $handle = fopen('lock.txt', 'r'); if(flock($handle, LOCK_EX | LOCK_NB)){ //do something }else{ // 提示系统繁忙 } flock($handle, LOCK_UN); fcolse($handle); ?> 注:windows不支持LOCK_NB类型锁定文件,所以,非阻塞模式不能在windows下做验证,Linux系统可以,fclose()文件会自动解锁,当程序执行到解锁文件之前时中断,会成为死锁。 应用场景:当执行一个脚本而阻塞其它脚本时,如:订单状态更改处理
|
2022-08-30
2022-08-17
2022-11-06
2022-07-18
2022-08-18
请发表评论