Задать вопрос
@TemaKam

Будут ли ошибки при многопоточной записи в 1 файл?

Если в нескольких потоках идет запись в один файл - могут ли возникнуть ошибки, по типу что когда-нибудь 2 потока одновременно в 1 позицию начнут писать?

Если да, то как этого избежать, но чтобы запись все равно была в потоках?
  • Вопрос задан
  • 204 просмотра
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
HemulGM
@HemulGM Куратор тега Python
Delphi Developer, сис. админ
Легко это организовать. Ставишь флаг "я пишу", если поток, который собирается писать видит, что флаг стоит, то ждёт, пока флаг пропадёт, затем сам ставит флаг, пока не допишет свои данные.
Ответ написан
@AstraVlad
Финансист, консультант, программист-любитель
Я бы наверное сделал отдельную очередь и поток для записи. Грубо говоря: каждый поток-обработчик ставит в очередь сообщения вида: "Начало записи", "Блок данных, которые должны идти последовательно", "Еще блоки"... "Конец записи". А поток, который сидит на записи, выбирает из очереди эти сообщения, собирает из них правильные последовательности данных и записывает целиком в файл. Тогда исключаются и конфликты и перемешивание данных (если это критично).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы