Специализация
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 в телеграм
Что такое DispatchGroup и DispatchSemaphore?
DispatchGroup позволяет группировать несколько асинхронных задач и получать уведомление, когда все они завершатся. DispatchSemaphore контролирует доступ к ресурсам, уменьшая либо увеличивая счётчик и блокируя поток при нулевом значении до сигнала.
Как организовать выполнение группы запросов с использованием DispatchGroup?
Создаётся DispatchGroup, перед каждой асинхронной задачей вызывают group.enter(), а внутри её завершения — group.leave(). После добавления всех задач можно вызвать group.notify(queue:) или group.wait(), чтобы выполнить код, когда все задачи завершатся.
Зачем нужны DispatchGroup и DispatchBarrier? Какие задачи они решают и где применяются на практике?
DispatchGroup: Позволяет ждать завершения группы задач.
DispatchBarrier: Обеспечивает эксклюзивный доступ к ресурсу в concurrent очереди.
Какие основные методы есть у DispatchGroup?
DispatchGroup позволяет отслеживать завершение нескольких асинхронных задач. Основные методы — enter, leave, notify и wait. С их помощью можно понять, когда группа задач полностью завершилась. Это удобно для координации параллельных операций. DispatchGroup часто используют для сетевых запросов.
Почему в некоторых случаях DispatchGroup неудобен для обработки ошибок?
DispatchGroup не знает ничего об ошибках — он отслеживает только завершение задач. Все ошибки приходится обрабатывать вручную. Это усложняет код, особенно если нужно прерывать выполнение при первой ошибке. Также сложно аккуратно агрегировать результаты. В таких сценариях DispatchGroup становится неудобным.
Рейтинг:
1
Сложность:
5
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
8
Рейтинг:
5
Сложность:
6
Рейтинг:
4
Сложность:
7