- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在研究 PHP 中的 flock 机制,但我很难理解 LOCK_SH 模式的功能。我在一个网站上读到它锁定了文件,因此其他脚本无法写入其中,但他们可以从中读取。但是,以下代码似乎没有按预期工作:在 file1.php 中,我有:
$fp = fopen('my_file.txt','r');
flock($fp, LOCK_SH);
sleep(20);
flock($fp, LOCK_UN);
在 file2.php 中我有
$fp = fopen('my_file.txt','a');
fwrite($fp,'test');
我运行第一个脚本将文件锁定 20 秒。锁定到位后,我运行 file2.php,它立即完成执行,之后,当我打开“my_file.txt”时,字符串“test”被附加到它(尽管“file1.php”仍在运行)。我尝试更改“file2.php”,以便它可以从锁定的文件中读取并从中读取红色,没有任何问题。所以显然……'LOCK_SH' 接缝处什么都不做。但是,如果我使用 LOCK_EX 是的,它会锁定文件,没有脚本可以写入或读取文件。我正在使用 Easy PHP 并在 Windows 7 下运行它。
最佳答案
LOCK_SH means SHARED LOCK. Any number of processes MAY HAVE A SHARED LOCK simultaneously. It is commonly called a reader lock.
LOCK_EX means EXCLUSIVE LOCK. Only a single process may possess an exclusive lock to a given file at a time.
If the file has been LOCKED with LOCK_SH in another process, flock with LOCK_SH will SUCCEED. flock with LOCK_EX will BLOCK UNTIL ALL READER LOCKS HAVE BEEN RELEASED.
关于php - LOCK_SH 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20452441/
我正在研究 PHP 中的 flock 机制,但我很难理解 LOCK_SH 模式的功能。我在一个网站上读到它锁定了文件,因此其他脚本无法写入其中,但他们可以从中读取。但是,以下代码似乎没有按预期工作:在
我是一名优秀的程序员,十分优秀!