php が flock() を使用してファイルへの排他ロックを取得し、pcntl_fork を使用して 2 つのプロセスに分割すると、両方のプロセスが同じ排他ロックを持つように見えます。つまり、さらに flock($fd, LOCK_EX ) は、そのファイル ハンドルに対して true を返します。
ただし、flock を使用するポイントは、2 つのプロセスが同時に同じファイルに書き込むのを防ぐことです。では、PHP はこのケースをどのように処理するのでしょうか。どういうわけか両方とも排他ロックを持っている 2 つのプロセスが競合することを許可しますか? あるプロセスが他のプロセスがロックを解除したかどうかを検出する方法は (新しいファイル ハンドラーを作成せずに) ありますか?
これは主に学術的な好奇心です。これは、新しいファイル ハンドラーを作成するか、IPC を使用して他のプロセスに通知する最後の手段として処理できることはわかっていますが、ロックの重複を検出する方法が群れシステムに組み込まれているのだろうか?