Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про IOS: synchronization, lock, queue

Расскажи о примитивах синхронизации

Вопрос проверяет знание инструментов для безопасной работы с потоками.

Короткий ответ

  • DispatchQueue — очереди для синхронизации.

  • NSLock — блокировки.

  • Semaphore — контроль доступа к ресурсам.

Длинный ответ

Основные примитивы:

  1. Serial DispatchQueue:

    • Гарантирует последовательное выполнение задач.

    let safeQueue = DispatchQueue(label: "com.example.safeQueue")
    safeQueue.async { /* код */ }
  2. NSLock:

    • Блокирует доступ к ресурсу.

    let lock = NSLock()
    lock.lock()
    // Критическая секция
    lock.unlock()
  3. Semaphore:

    • Ограничивает число потоков для ресурса.

    let semaphore = DispatchSemaphore(value: 1)
    semaphore.wait()
    // Доступ только для одного потока
    semaphore.signal()

Вывод:
Выбор примитива зависит от задачи. Очереди (DispatchQueue) — самый удобный вариант.

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • IOS

    IOS

Ключевые слова

#synchronization

#lock

#queue

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.