Многопоточность trainee
Что такое race condition?
Ответ
Гонка — ситуация, когда результат зависит от порядка выполнения потоков. Классика: i++ из двух потоков. Может быть +1, может быть +2 — зависит от планировщика. Решение — синхронизация (synchronized, locks, atomic) или immutable.
Разбор: Race condition — это зависимость результата от порядка выполнения потоков при конкурентном доступе к общим изменяемым данным (классика — i++ из двух потоков), решается синхронизацией, atomic или immutable. Первые два варианта описывают смежные, но другие явления — deadlock и starvation. Третий неверен: проблема возникает именно при незащищённой записи, а volatile обеспечивает видимость, но не атомарность составной операции вроде инкремента.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.