Если несколько горутин обращаются к одной памяти и хотя бы одна пишет без синхронизации, возникает data race. Результат нельзя считать предсказуемым или безопасным.
Что произойдёт, если не синхронизировать конкурентный доступ к общей переменной?
Если несколько горутин обращаются к одной памяти и хотя бы одна пишет без синхронизации, возникает data race. Результат нельзя считать предсказуемым или безопасным.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт, если не синхронизировать конкурентный доступ к общей переменной?
Ответ
Если несколько горутин обращаются к одной памяти и хотя бы одна пишет без синхронизации, возникает data race. Результат нельзя считать предсказуемым или безопасным.
Возможны потерянные обновления, устаревшие значения и повреждение составных структур. Одних sleep или Gosched для исправления недостаточно. Используйте mutex, атомики или передачу владения и проверяйте реальные сценарии race detector, помня об ограниченности тестового покрытия.