Пользователь SO спросил вопрос, на который ответ эффективно "использовал механизм блокировки".
Во время исследования моего ответа я обнаружил, что в PHP, по-видимому, нет простого механизма межзадач-надежного блокирования. flock() имеет большое толковое предупреждение:
В некоторых операционных системах flock() реализуется на уровне процесса. При использовании API многопоточного сервера, такого как ISAPI, вы не сможете полагаться на flock() для защиты файлов от других скриптов PHP, работающих в параллельных потоках одного и того же экземпляра сервера!
Обсуждение в этом вопросе глубоко вникает в проблему, но появляется только с довольно сложными решениями: использование RAM-диска или Memcache.
Единственное, что выглядит наполовину хорошим, это mySQL GET_LOCK()
.
Итак, мой вопрос: действительно ли так оно и есть? В PHP нет простой, простой, кросс-платформенной безопасной системы блокировки? Тот, который является атомарным и освободит блокировку, если процесс владельца погибнет и не потребует огромных усилий по настройке?