Многопоточный процесс записи данных в один файл может стать проблемой, которая закончится беспорядочным содержимым файла. Лучше синхронизировать процесс записи данных в файл с помощью использования Mutex или какого-то другого инструмента для синхронизации горутин. В таком случае только одна горутина за раз сможет записывать что-то в файл. В данной инструкции показано, как сделать надежную запись в файл из нескольких горутин.

Записываем данные в файл из нескольких горутин

1. Создайте файл syncwrite.go со следующим содержимым:

Премиум 👑 канал по Golang

Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎

Подписаться на канал

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК ЧАТ в Telegram

2. Запустите код через go run syncwrite.go в главном терминале;
3. Проверьте содержимое созданного файла sample.file:

запись в файл из нескольких горутин

Код из примера создает Writer с помощью Mutex, которая встраивает Writer (os.File в данном случае) и каждый вызов записи данных блокирует Mutex для избежания одновременных процессов записи в файл. После завершения операции записи, примитива Mutex освобождает и другая горутина может начать запись данных в файл.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *