Race Condition — это ситуация, когда результат работы программы зависит от порядка выполнения потоков.
Классический пример — инкремент:
// Два потока выполняют:
counter++; // read-modify-write
// Без синхронизации:
// Поток 1: читает 0
// Поток 2: читает 0
// Поток 1: пишет 1
// Поток 2: пишет 1
// Итого: 1 вместо 2
Решения: synchronized, AtomicInteger, Lock, volatile (только для простых операций).
🐸 Библиотека собеса по Java
#concurrency