Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Swift : async, await, gcd, concurrency

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

Вопрос проверяет понимание современных средств асинхронного программирования в Swift и классических примитивов многопоточности.

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

GCD (Grand Central Dispatch) предоставляет низкоуровневые очереди и синхронизированные вызовы sync/async, требуя явного управления задачами и колбэками. async/await — новый синтаксис на основе Swift Concurrency с Task и Actor, упрощает чтение асинхронного кода, позволяет писать его как последовательный, автоматически управляет жизненным циклом задач.

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

GCD:

  • Работа с DispatchQueue, DispatchGroup, DispatchSemaphore.

  • Колбэки и closure-ориентированный стиль.

Swift Concurrency (async/await):

  • Функции объявляют async и вызываются через await.

  • Управляются Task и структурой Actor для безопасности.

Пример GCD:

DispatchQueue.global().async {
    	let data = fetchData()
    	DispatchQueue.main.async {
        	updateUI(data)
    	}
}

Пример async/await:

Task {
    	let data = await fetchData()
    	updateUI(data)
}

Преимущества async/await:

  • Читаемый линейный код.

  • Встроенная отмена и обработка ошибок через Task.cancel(), try.

  • Урегулированная модель конкурентности.

Вывод:
Для нового кода на Swift 5.5+ рекомендуется async/await; GCD применим для поддержки старых версий или специфичных сценариев.

  • Аватар

    iOS Guru

    Roman Isakov

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

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Swift

    Swift

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

#async

#await

#gcd

#concurrency

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

  • Аватар

    iOS Guru

    Roman Isakov

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