Специализация
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 в телеграм
Зачем для тега <script> добавляют атрибуты async и defer?
Атрибуты async и defer у тега <script> используются для управления тем, как и когда браузер загружает и выполняет JavaScript. async загружает скрипт асинхронно и выполняет его сразу после загрузки, не дожидаясь завершения загрузки всей страницы. defer также загружает скрипт асинхронно, но откладывает его выполнение до полной загрузки HTML-документа, что предотвращает блокировку рендеринга страницы.
Для чего нужны Async/await?
async/await — это синтаксис, который упрощает работу с промисами, делая асинхронный код более похожим на синхронный. Функция с ключевым словом async всегда возвращает промис, а await приостанавливает выполнение функции до получения результата промиса. Это делает код более читаемым и упрощает обработку ошибок.
Что такое createAsyncThunk и как его использовать?
createAsyncThunk — это утилита из Redux Toolkit для работы с асинхронными действиями. Она помогает создавать асинхронные экшены, автоматически генерируя три состояния: ожидание, успех и ошибка. Вы описываете асинхронную функцию, а Redux Toolkit автоматически управляет состоянием загрузки и ошибок, обновляя store на основе результата выполнения действия.
Что такое async?
async используется для объявления асинхронных функций, которые могут быть приостановлены во время выполнения с помощью await. Это позволяет не блокировать выполнение других операций, пока функция ожидает завершения длительной задачи, такой как запрос к серверу или ввод/вывод.
В чём разница между многопоточностью (CPU-bound) и асинхронностью (IO-bound) в .NET и как работают async/await?
CPU-bound задачи используют потоки и Parallel/Tasks для распределения вычислений между ядрами и могут потребовать lock/SemaphoreSlim. IO-bound операции (await httpClient.GetAsync) не блокируют поток — метод возвращает Task, освобождая поток для других задач, а по завершении I/O продолжает выполнение в пуле. async/await трансформирует метод в state machine, которая при встрече await регистрирует продолжение и возвращает Task без блокировки текущего потока.
В чём разница между async/await и GCD?
Какие задачи решаются с использованием библиотеки asyncio и других средств асинхронного программирования?
Может ли метод с async выполняться синхронно? Что происходит с потоком при await?
В чём разница между dispatch_sync и dispatch_async? Как они работают под капотом?
Какие примитивы синхронизации есть в asyncio?
Рейтинг:
2
Сложность:
6
GCD (Grand Central Dispatch) предоставляет низкоуровневые очереди и синхронизированные вызовы sync/async, требуя явного управления задачами и колбэками. async/await — новый синтаксис на основе Swift Concurrency с Task и Actor, упрощает чтение асинхронного кода, позволяет писать его как последовательный, автоматически управляет жизненным циклом задач.
Рейтинг:
2
Сложность:
6
asyncio и библиотеки вроде aiohttp используются для веб-запросов, работы с базами данных и потоками данных, позволяя обрабатывать множество задач без блокировки.
Рейтинг:
2
Сложность:
6
Да, метод с async может выполняться синхронно, если результат уже доступен. При await поток освобождается, пока задача не завершится. Это позволяет использовать его для других операций, а не блокировать. После завершения задачи выполнение продолжается (возможно, в другом потоке).
Рейтинг:
2
Сложность:
8
dispatch_sync: Блокирует текущий поток до завершения задачи.
dispatch_async: Отправляет задачу в очередь и сразу продолжает выполнение.
Рейтинг:
2
Сложность:
5
Основные примитивы:
Lock — блокировка для исключительного доступа
Event — уведомление между корутинами
Semaphore — ограничение числа одновременных операций
Condition — сложные условия ожидания
Рейтинг:
4
Сложность:
6
Рейтинг:
4
Сложность:
4
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
5