Стан перегонів (race condition)
Коротко: Стан перегонів виникає, коли результат програми залежить від часового порядку, у якому кілька потоків звертаються до спільних даних.
Докладніше: Помилка проявляється нерегулярно й погано відтворюється, бо порядок залежить від випадкових чинників планувальника. Класичний приклад: два потоки збільшують один лічильник. counter += 1 складається з читання, додавання та запису — якщо потік перемикається між ними, одне збільшення втрачається.
Подробиці
import threading
counter = 0Див. також: потік, м’ютекс, взаємне блокування, паралелізм