EMZETT.
Увійти

Стан перегонів (race condition)

Коротко: Стан перегонів виникає, коли результат програми залежить від часового порядку, у якому кілька потоків звертаються до спільних даних.

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

Подробиці

import threading
counter = 0

Див. також: потік, м’ютекс, взаємне блокування, паралелізм