php - 如果脚本在锁定期间超时或终止,PHP 文件锁定会发生什么情况?

标签 php locking flock

这个 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/

相关文章:

PHP相当于Linux的top命令

php - JavaScript 到 PHP 的弹出窗口内容

php - 从一个表中选择匹配值到另一个表中的多个值

coding-style - 编码风格 : lock/unlock internal or external?

.net - 当互锁类可用时,为什么要在.NET中使用SyncLocks进行简单操作?

python -/bin/sh : 1: Syntax error: word unexpected - Using os. system() 来自 Python

php - 在 PHP 生成的表中显示 MySQL 用户数据

java - 用 Java 实现 Peterson 锁

php - 如何在 Windows 上的 PHP 中锁定目录以进行独占访问?

Perl Open 和 Flock 超时