flock.php
<?php
$fp=fopen('lock.txt','a');
if (flock($fp,LOCK_EX)){
fwrite($fp," HHHHHHHHHHHHHH".time()."\r\n");
}
?>
flock2.php
<?php
$fp=fopen('lock.txt','a');
if (flock($fp,LOCK_EX)){
fwrite($fp," GGGGGGGGGGGGGG".time()."\r\n");
}
?>
Zweifel:
Warum ist die Datei flock.php mit einer exklusiven Sperre gesperrt, die Sperre wird jedoch nicht aufgehoben und die Datei fclose wird nicht geschlossen. Beim Ausführen der Datei flock2.php kann sie jedoch weiterhin geschrieben werden.
Kann die exklusive Sperre der Dateisperre nach dem Sperren nicht von anderen Prozessen geschrieben werden? Kann ich erst wieder schreiben, wenn die Sperre aufgehoben wird?
php 执行完就结束了,释放资源了,自然就会释放锁
你要测试的话,flock.php 加个死循环,确保永不退出,在执行 flock2.php 看看效果