Параллельная запись в файл

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

Например, если два разных процесса пишут в один и тот же момент в файл, это может привести к проблемам. Простым решением (не очень быстрым и не очень элегантным) будет блокировка файла при начале процесса (создание файла .lock или аналогичного) и освобождение его (удаление блокировки) во время записи.

В начале записи я бы проверил, существует ли файл .lock, и отложил бы запись, пока файл не будет выпущен.

Каков рекомендуемый образец для такой ситуации?

Спасибо

EDIT Я имею в виду процессы, например разные программы от разных клиентов, разных пользователей и т. Д., А не потоки в одной программе

Ответы на вопрос(6)

Ваш ответ на вопрос