Критическая гонка в многозадачных системах возникает, когда порядок, в котором изменяются внутренние переменные, определяет конечное состояние, в котором в конечном итоге окажется конечный автомат. 7 Это приводит к некорректному выполнению и ошибкам программного обеспечения. 7 Критические состояния гонки часто возникают, когда процессы или потоки зависят от некоторого общего состояния. 7
Обычная гонка (состояние гонки) возникает, когда несколько потоков или процессов одновременно пытаются получить доступ к одним и тем же ресурсам (например, переменным памяти, файлам или устройствам ввода-вывода) без синхронизации. 25 При этом результаты операций могут зависеть от порядка их выполнения, что делает поведение программы неопределённым. 2
Таким образом, отличие критической гонки от обычной заключается в том, что критическая гонка возникает, когда порядок изменения внутренних переменных определяет конечное состояние, а обычная гонка — когда несколько процессов конкурируют за доступ к общим ресурсам, и результат зависит от порядка выполнения операций. 27