Специализация
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 в телеграм
Каково назначение dispatch в React Redux?
dispatch — это функция, которая отправляет действия (actions) в хранилище Redux. Эти действия обрабатываются редьюсерами, которые обновляют состояние. dispatch используется для взаимодействия с глобальным состоянием и вызова изменений.
Что такое DispatcherServlet?
DispatcherServlet — это основной компонент Spring MVC, который действует как фронтальный контроллер. Он принимает входящие запросы, определяет соответствующий обработчик (контроллер), обрабатывает данные и отправляет ответ клиенту, упрощая маршрутизацию и управление представлениями.
При использовании Flow, какой Dispatcher вы бы выбрали для работы с UI и для фоновых задач?
Для обновления UI при сборе Flow выбирают Dispatchers.Main, чтобы безопасно работать с элементами интерфейса. Для фоновых задач (сеть, база данных, вычисления) используют Dispatchers.IO или Dispatchers.Default соответственно. Рекомендуется переключаться контекст в середине цепочки через оператор flowOn.
Какие есть CoroutineScope и Dispatcher, и как они применяются?
CoroutineScope определяет жизненный цикл корутин, например GlobalScope, viewModelScope, lifecycleScope, а Dispatcher указывает, на каком потоке выполнять код: Dispatchers.Main для UI, Dispatchers.IO для I/O, Dispatchers.Default для CPU-интенсивных задач. Их комбинируют, чтобы корутины запускались в нужных условиях и отменялись вместе с жизненным циклом.
Что такое DispatchGroup и DispatchSemaphore?
DispatchGroup позволяет группировать несколько асинхронных задач и получать уведомление, когда все они завершатся. DispatchSemaphore контролирует доступ к ресурсам, уменьшая либо увеличивая счётчик и блокируя поток при нулевом значении до сигнала.
Как организовать выполнение группы запросов с использованием DispatchGroup?
В чём разница между dispatch_sync и dispatch_async? Как они работают под капотом?
Зачем нужны DispatchGroup и DispatchBarrier? Какие задачи они решают и где применяются на практике?
Как правильно передавать Dispatcher в классы: через DI или напрямую?
В чём разница между диспетчерами Dispatchers.IO и Dispatchers.Default? Когда использовать каждый?
Рейтинг:
2
Сложность:
6
Создаётся DispatchGroup, перед каждой асинхронной задачей вызывают group.enter(), а внутри её завершения — group.leave(). После добавления всех задач можно вызвать group.notify(queue:) или group.wait(), чтобы выполнить код, когда все задачи завершатся.
Рейтинг:
2
Сложность:
8
dispatch_sync: Блокирует текущий поток до завершения задачи.
dispatch_async: Отправляет задачу в очередь и сразу продолжает выполнение.
Рейтинг:
2
Сложность:
8
DispatchGroup: Позволяет ждать завершения группы задач.
DispatchBarrier: Обеспечивает эксклюзивный доступ к ресурсу в concurrent очереди.
Рейтинг:
2
Сложность:
5
Лучше передавать через DI (например, Hilt), чтобы упростить тестирование и замену реализаций. Прямая передача допустима только в простых случаях.
Рейтинг:
2
Сложность:
5
Dispatchers.Default – для CPU-интенсивных задач (сортировка, вычисления).
Dispatchers.IO – для операций ввода-вывода (сеть, файлы, БД).
Рейтинг:
2
Сложность:
2
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
6
Рейтинг:
1
Сложность:
5