这个 PHP 代码示例可以最好地说明我的问题:
$file = fopen($filePath, "wb");
if($file !== false)
{
//Obtain exclusive lock
if(flock($file, LOCK_EX))
{
//Script times out or is terminated here
//say, due to it using too much RAM, etc.
//...
//Release exclusive lock
flock($file, LOCK_UN);
}
fclose($file);
}
锁会发生什么?
最佳答案
我刚刚在以下共享服务器上进行了一些测试:
PHP Version 5.4.34
Linux 3.12.35.1418868052 #1 SMP x86_64
我的结论是,一旦脚本完成运行,文件锁就会自动释放,即使出现 fatal error 、超时或内存不足错误而终止脚本,或者如果我注释掉了 flock($file, LOCK_UN);
函数。
关于php - 如果脚本在锁定期间超时或终止,PHP 文件锁定会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28258148/