Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про IOS: sync, async

В чём разница между sync и async?

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

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

sync выполняет задачу синхронно и блокирует текущий поток до её завершения.
async добавляет задачу в очередь и сразу возвращает управление, не блокируя поток.
При sync код выполняется последовательно, при async — параллельно или позже.
Неправильное использование sync может привести к зависаниям приложения.

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

Разница между sync и async заключается не в потоках, а в поведении вызывающего кода.

Определение

sync — это способ выполнения, при котором текущий поток ждёт завершения задачи.
async — это способ выполнения, при котором задача ставится в очередь, а выполнение продолжается сразу.

Синхронное выполнение (sync)

При использовании sync текущий поток блокируется.

queue.sync {
    // выполнение задачи
}
  • текущий поток ждёт окончания блока

  • код после sync выполнится только после завершения

  • опасен при работе с main queue

Асинхронное выполнение (async)

async не блокирует поток.

queue.async {
    // выполнение задачи
}
  • задача выполняется позже

  • текущий поток продолжает работу

  • безопасен для UI при работе с background queue

Ключевое отличие

Важно понимать, что:

  • sync и async не определяют поток

  • они определяют, ждёт ли вызывающий код завершения задачи

Краткий вывод

async используется в большинстве случаев. sync стоит применять осторожно и только тогда, когда действительно нужно дождаться результата.

  • Аватар

    iOS Guru

    Roman Isakov

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • IOS

    IOS

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

#sync

#async

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

  • Аватар

    iOS Guru

    Roman Isakov

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