【问题标题】:php what happens if 2 people append at the same time? [duplicate]php 如果两个人同时追加会发生什么? [复制]
【发布时间】:2011-01-20 22:15:51
【问题描述】:

可能重复:
PHP Simultaneous File Writes

你好,

如果我有一个 php 脚本和一个文本文件,并且 2 个用户同时将一个长文本字符串附加到文本文件中,会发生什么?它还会通过吗?它是被缓冲的,所以它们都被附加了,还是被丢弃了?

【问题讨论】:

标签: php


【解决方案1】:

通过使用fopenc 模式参数,您可以强制文件被锁定,直到您fclose 文件。这将不允许多人同时写入文件。通常,文件系统会默认执行此操作(取决于操作系统配置),但是,使用 mode 参数将涵盖您的基础。

PHP: fopen

【讨论】:

    【解决方案2】:

    具体情况取决于正在写入的数据的平台和大小,但是如果两个进程都开始在文件中的相同位置写入,那么可以说最后一个通常会胜出。但是,您最终也可能会遇到交错的数据,尤其是在一次写入大量数据时。

    看一下flock()。操作系统并没有完全“为你做”。

    【讨论】:

      【解决方案3】:

      通常操作系统会在写入过程中锁定文件,因此其他进程必须等待此写入过程完成才能开始写入。

      因此它应该包括一个客户端的延迟或 fopen() 期间的 PHP 警告/错误。取决于代码的工作方式以及您使用的功能。

      【讨论】:

        猜你喜欢
        • 2019-11-03
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 2015-12-02
        • 1970-01-01
        • 2021-09-06
        • 1970-01-01
        相关资源
        最近更新 更多