读写文件时的并发性

时间:2011-09-21 08:30:07

标签: file-io concurrency

我有一个网站,我网站的一部分需要在服务器上读/写纯文本文件。大多数情况下,我们有50到100个并发在线用户,他们在我们网站上的操作导致读/写某些文件,其中某些文件是其他页面的临时占位符。

所以我想知道并发读/写冲突,如果发生这种情况,最好避免这种情况。我的服务器如何管理这些请求?

2 个答案:

答案 0 :(得分:1)

比网络服务器更重要的是底层操作系统和文件系统。

你可以(在支持的情况下)使用flock()在PHP中获取文件句柄的独占锁定,导致所有其他独占锁定尝试阻塞并堆叠在它后面。

答案 1 :(得分:1)

* nix系统中的一个选项是创建一个临时文件,写入它,fsync(),然后重命名()到目标文件名。当然这只适用于单个作家,或者如果你只想要最新的作家。