Вопрос проверяет опыт работы с check-then-act
Короткий ответ
Проверка и действие должны быть в одной критической секции. Если проверку делать без блокировки, то два запроса могут пройти проверку и оба записать, нарушив инвариант.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.