高并发环境下如何读写同一个文件?

PHP 基础面试题
0
0
分享
推荐答案
展示答案

<?php $fp = fopen(__DIR__ . "/tmp/lock.txt", "r+"); // 进行独占型锁定 //默认情况下,该函数将堵塞直到获得锁;这可以通过 LOCK_NB 选项来控制。 // if (flock($fp, LOCK_EX)) { if (flock($fp, LOCK_EX | LOCK_NB)) {     echo "获取独占锁成功" . PHP_EOL;     // 清除文件     ftruncate($fp, 0);     fwrite($fp, "Write something here\n");     // 释放锁之前刷新缓冲区     fflush($fp);     //模拟执行时间比较长的任务     sleep(10);     // 释放锁定     flock($fp, LOCK_UN);     echo "释放独占锁成功" . PHP_EOL; } else {     echo "获取锁失败" . PHP_EOL; } fclose($fp);

答案已隐藏