Специализация
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 и DispatchBarrier? Какие задачи они решают и где применяются на практике?
DispatchGroup: Позволяет ждать завершения группы задач.
DispatchBarrier: Обеспечивает эксклюзивный доступ к ресурсу в concurrent очереди.
Как работает механизм memory barriers и почему Go вставляет их при работе с атомиками?
Memory barriers гарантируют порядок выполнения операций памяти на CPU. Go вставляет барьеры при использовании sync/atomic, чтобы обеспечить корректное happens-before между потоками и предотвратить нежелательную переупорядоченность инструкций.
Как работает barrier в GCD и когда его стоит использовать?
barrier в GCD — это специальная задача, которая на concurrent queue выполняется эксклюзивно: она ждёт завершения всех ранее запланированных задач и блокирует выполнение последующих, пока сама не закончится. Это удобно для потокобезопасной записи при параллельных чтениях. Обычно barrier используют в структурах вроде кешей или хранилищ, где чтений много, а записей мало. На serial queue barrier не даёт преимуществ, потому что там и так всё выполняется по очереди.
В чем отличие dispatch barrier от semaphore?
Dispatch barrier используется для синхронизации задач в конкурентной очереди. Semaphore управляет количеством одновременно выполняемых задач. Barrier блокирует очередь до выполнения блока. Semaphore контролирует доступ к ресурсу через счетчик. Это разные инструменты для разных задач.
Чем dispatch barrier отличается от dispatch sync?
dispatch barrier управляет порядком выполнения задач в конкурентной очереди. dispatch sync блокирует текущий поток до завершения задачи. Barrier влияет на очередь, а sync — на вызывающий поток. Это разные уровни контроля. Неправильный выбор может привести к deadlock или проблемам с производительностью.
Рейтинг:
2
Сложность:
8
Рейтинг:
3
Сложность:
8
Рейтинг:
5
Сложность:
8
Рейтинг:
4
Сложность:
8
Рейтинг:
4
Сложность:
8