Есть ли риск запуска file_put_contents () в том же файле из разных потоков PHP?

Я знаю, что file_put_contents () упрощает добавление данных в файл на PHP. Я хотел бы попытаться использовать « потоки » PHP в file_put_contents() в том же файле журнала из разных потоков PHP. Есть ли риск запуска file_put_contents () в том же файле из разных потоков PHP или эти потоки будут успешно блокироваться, если файл заблокирован или доступен другим потоком?

EDIT: нашел аналогичный вопрос, который рекомендует flock () , но вопрос о риске, похоже, не полностью устранен. Являются ли эти «атомарные» операции записи?

Related of "Есть ли риск запуска file_put_contents () в том же файле из разных потоков PHP?"

как говорится на странице руководства (что вы дали ссылку для!):

 // Write the contents to the file, // using the FILE_APPEND flag to append the content to the end of the file // and the LOCK_EX flag to prevent anyone else writing to the file at the same time file_put_contents($file, $person, FILE_APPEND | LOCK_EX); 

Используйте флаг LOCK_EX для предотвращения двойной записи

Простой ответ, да. могут произойти столкновения

используйте что-то вроде file_put_contents($location, $data, FILE_APPEND | LOCK_EX);

Когда вы ожидаете, что несколько экземпляров будут записываться в один и тот же файл, вы должны приобрести эксклюзивную блокировку, чтобы никакие другие процессы не могли записывать файл, пока текущий не закончит запись его данных