Что такое синхронное выполнение кода?

«Что такое синхронное выполнение кода?» — вопрос из категории Многопоточность, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Синхронное выполнение — это модель, при которой операции выполняются последовательно, одна за другой. Каждая следующая операция начинает выполняться только после полного завершения предыдущей, блокируя поток выполнения до своего окончания.

Пример на Swift:

print("Шаг 1: Начало")
let data = loadDataSynchronously(from: url) // Поток блокируется здесь
print("Шаг 2: Данные загружены: (data.count) байт")
process(data) // Выполнится только после loadDataSynchronously
print("Шаг 3: Конец")

Ключевые характеристики:

  • Последовательность: Четкий, предсказуемый порядок выполнения.
  • Блокировка потока: Долгая операция (например, сетевой запрос или чтение большого файла) "заморозит" текущий поток (и UI, если это главный поток).
  • Простота: Поток управления легко читать и отлаживать.
  • Отсутствие гонок: Поскольку нет параллелизма, исключены состояния гонки (race conditions).

Когда использовать: Для простых, быстрых задач, где блокировка не критична, или когда порядок операций строго обязателен.