Ctrl K
Mid-level · Theory

Несколько потоков одновременно делают counter++ над общей переменной, и в итоге значение получается меньше ожидаемого. Объясните, что именно происходит на уровне процессора и памяти, и какими способами это можно исправить — чем они отличаются внутри.

~4 min by voice

How to approach it

Проверяют, понимает ли кандидат, почему counter++ теряет обновления: неатомарность load-add-store, чередование потоков, видимость через кеши и барьеры. И знает ли он, как мьютекс и атомики устроены внутри и сколько они стоят под нагрузкой.

Have you seen this question in a real interview?
Answers0
Avg. score—
Strong—
Practiced0
Topics
Where it's asked
Similar questionsНапишите асинхронную функцию fetch_all, которая принимает список URL, асинхронную функцию загрузки одного URL и лимит одновременных запросов. Она возвращает результаты в том же порядке, что и URL, а ошибка одного запроса не должна ронять остальные. SeniorНапиши потокобезопасный класс RateLimiter: в конструктор передают, сколько запросов в секунду разрешено, а метод tryAcquire без ожидания возвращает true, если запрос можно пропустить, и false, если лимит исчерпан. Его будут вызывать одновременно из многих потоков. SeniorВозьмём перевод между двумя счетами, которые лежат в одной базе: списать с одного, зачислить на другой. Как вы это реализуете, чтобы при параллельных операциях деньги не потерялись и баланс не ушёл в минус? SeniorНапишите rate limiter для API по алгоритму token bucket: функция allow принимает идентификатор клиента и возвращает, можно ли пропустить его запрос. У каждого клиента есть ёмкость корзины и скорость пополнения токенов в секунду, а сам лимитер вызывается из многих потоков одновременно. SeniorНесколько инстансов сервиса раз в минуту запускают одну и ту же фоновую задачу, и иногда она выполняется дважды. Как вы это исправите? Senior

Answer by voice

The interviewer will ask this question and listen. Think out loud and ask for a hint if you need one. When you're done, pause or tap “That's my answer”. In about a minute, your score and the points you covered show up here.

Sign in to answer

Best with headphones · ~4 min