Вы можете найти на здесь очень хорошее объяснение того, что такое состояние гонки.
Недавно я видел много людей, которые сбивали с толку заявления о гоночных условиях и потоках.
Я узнал, что условия гонки могут возникать только между потоками. Но я видел код, похожий на условия гонки, на языке событий и асинхронных языков, даже если программа была одиночной нитью, например, в Node.js, в GTK + и т.д.
Можем ли мы иметь условие гонки в одной программе потока?