Вопрос проверяет понимание различий между концепциями асинхронности и параллелизма.
Асинхронность: Неблокирующее выполнение (может быть в одном потоке).
Многопоточность: Параллельное выполнение в разных потоках.
1. Асинхронность:
Не блокирует текущий поток.
Пример: DispatchQueue.main.async.
2. Многопоточность:
Использует несколько потоков CPU.
Пример: DispatchQueue.global().async.
Где применяется:
Асинхронность: сетевые запросы, обработка событий.
Многопоточность: вычисления, обработка изображений.
Вывод:
Асинхронность — про организацию кода, многопоточность — про использование ресурсов CPU.