1

在这种情况下我需要帮助,

在处理请求的过程中,由于某种原因我需要写入文件,所以我使用了flock来确保只有一个请求同时写入文件。

我的问题是当一个请求在被其他请求锁定期间调用群发时会发生什么。是等到释放还是只返回false而不打开文件?

4

1 回答 1

3

根据文档

默认情况下,此函数将阻塞,直到获得请求的锁

只要确保使用正确的锁(参见文档)

  • LOCK_SH 获取共享锁(读取器)。
  • LOCK_EX 获取排他锁(写入器)。

基本上,写入者等待排他锁,这意味着它等待所有读取者或当前写入者释放(ir)锁。而读者可能不止一个阅读文件。

并且,释放锁

  • LOCK_UN 释放锁(共享或独占)。
于 2013-02-24T07:50:03.243 回答