обычно есть воркер который работает с файлом какая-то очередь в которую пишут другие потоки а воркер из этой очереди пишет в файл то что ему накидали потоки
а вообще - скорей всего для вашей задачи есть библиотека какаянить логирования там или субд которые эти вопросы разруливают внутри себя и предоставляют гарантии