первым, кто открывает файл, должен использовать функцию
flock над идентификатором файла fopen
$file = fopen('filename.txt', 'r');
// пробуем установить эксклюзивную блокировку
if (flock($file, LOCK_EX)) {
// выполнение операций чтения
// ...
// освобождаем блокировку
flock($file, LOCK_UN);
} else {
echo "Не удалось установить блокировку на файл.\n";
}
fclose($file);
это системная фича posix, не привязанная к языку программирования
p.s. аналогичные механизмы есть у windows, при открытии файла указывается тип блокировки shared...