Проблема race condition (состояния гонки) при многопоточном программировании заключается в ситуации, когда несколько потоков (или процессов) одновременно пытаются выполнить операции чтения или записи к общим ресурсам без должной синхронизации. 5
Из-за этого конечное состояние общего ресурса становится неопределённым, что может приводить к различным ошибкам, которые проявляются в непредсказуемые моменты времени. 25 Основными последствиями могут быть утечки памяти, ошибки сегментирования, порча данных, уязвимости, взаимные блокировки, утечки других ресурсов, например файловых дескрипторов. 2
Пример: два потока могут одновременно запросить базу данных и подтвердить, что код скидки ещё не был применён к корзине, затем оба попытаются применить скидку, в результате чего она будет применена дважды. 5