Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое temporal dead zone (временная мёртвая зона) в JavaScript и как она влияет на переменные?
Temporal dead zone (TDZ) — это период времени от начала области видимости переменной, объявленной с помощью let или const, до момента её инициализации. В TDZ переменные недоступны и попытка к ним обратиться вызовет ошибку. Это помогает избежать непредсказуемого поведения при работе с переменными.
Как избежать deadlock при работе с последовательными очередями?
Нельзя вызывать sync на той же последовательной очереди, в которой уже находитесь. Вместо этого следует использовать async или выполнять синхронный вызов на другой очереди, чтобы избежать ситуации, когда очередь ждёт сама себя.
Как избежать deadlock/livelock при работе с блокировками?
Избегайте вложенных блокировок.
Используйте таймауты (например, tryLock(timeout)).
Упорядочивайте блокировки (всегда получайте lockA перед lockB).
Чем Deadlock отличается от Livelock?
Deadlock: Потоки блокируют друг друга навсегда (ожидают ресурсы по кругу).
Livelock: Потоки активно работают, но не прогрессируют (например, из-за "вежливой" логики).
Когда использовать context.WithTimeout, а когда context.WithDeadline?
WithTimeout задаёт ограничение от текущего момента (через N секунд/миллисекунд). WithDeadline фиксирует конкретное время окончания. Для API-запросов чаще берут WithTimeout, для задач с фиксированным дедлайном — WithDeadline.
Что такое deadlock в базе данных и как его избежать?
Что такое взаимоблокировка (deadlock) в базах данных?
Какие причины могут привести к возникновению deadlock при конкурентных запросах к базе данных и как их предотвращать?
Что такое DLQ/DLX (dead-letter) в RabbitMQ и зачем нужно?
Что такое deadlock и как он возникает?
Рейтинг:
5
Сложность:
5
Deadlock возникает, когда две транзакции ждут друг друга из-за блокировок строк или таблиц. Избежать можно упорядочиванием доступа к ресурсам, короткими транзакциями и ретраями.
Рейтинг:
4
Сложность:
7
Взаимоблокировка (deadlock) возникает, когда две или более транзакции блокируют друг друга, ожидая освобождения ресурсов, занятых другой транзакцией. Например, транзакция A блокирует ресурс X и ждет ресурс Y, а транзакция B блокирует ресурс Y и ждет ресурс X. Ни одна из транзакций не может продолжить выполнение. СУБД автоматически обнаруживает взаимоблокировки и разрешает их, отменяя одну из транзакций (жертву deadlock), позволяя другой завершиться успешно.
Рейтинг:
5
Сложность:
7
Deadlock появляется, когда два запроса блокируют ресурсы друг друга в пересекающемся порядке: один заблокировал строку A и ждёт строку B, а другой — наоборот. Причины: несогласованный порядок обновлений, долгие транзакции, отсутствие индексов, смешивание SELECT FOR UPDATE и UPDATE на разных путях. Чтобы избегать deadlock: соблюдать единый порядок обновления сущностей, делать транзакции короткими, использовать правильные индексы, избегать сканирования больших таблиц под блокировками и по возможности минимизировать конкурирующие UPDATE по одним и тем же строкам.
Рейтинг:
4
Сложность:
6
DLX (Dead Letter Exchange) — это специальный exchange в RabbitMQ, куда попадают сообщения, которые не удалось обработать. DLQ (Dead Letter Queue) — это очередь, привязанная к этому exchange. Сообщения попадают туда, если они были отклонены, истёк TTL или очередь была переполнена. Это позволяет не терять проблемные сообщения и анализировать причины ошибок. DLQ используют для отладки, ретраев и мониторинга.
Рейтинг:
5
Сложность:
7
Deadlock — это ситуация, когда потоки навсегда ждут друг друга. Каждый поток удерживает ресурс и ожидает освобождения другого. В результате выполнение останавливается. Deadlock чаще всего возникает из-за неправильной синхронизации. Это одна из самых опасных ошибок многопоточности.
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
5
Рейтинг:
1
Сложность:
6
Рейтинг:
3
Сложность:
3