
Состояние гонки (Race conditions) или гонка даных (Data race) является ошибкой проектирования многопоточной системы или приложения, при которой работа системы или приложения зависит от того, в каком порядке выполняются части кода. Подобная ошибка может привести к ошибочным и загадочным сбоям, чем благополучно пользуются злоумышленники для получения доступа к системе или приложению. Несмотря на то, что механизмы конкурентности Go упрощают написание чистого конкурентного кода, они не предотвращают состояние гонки. В данном случае требуется осторожность, усердие и тестирование, а инструменты автоматизации поиска могут помочь.
Начиная с версии 1.1 Go включает в себя детектор гонки, инструмент для определения состояний гонки в коде Go. В настоящее время он доступен для систем Linux, OS X и Windows с 64-разрядными процессорами x86.
О гонках данных простыми словами можно почитать здесь. Учимся использовать детектор гонки данных с помощью данных статей (1 и 2).