Что управляет жизненным циклом потока (Thread) в iOS?

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

Ответ

В iOS жизненным циклом потоков управляет система (ядро) в связке с высокоуровневыми API. Разработчику напрямую управлять созданием и уничтожением потоков не рекомендуется.

Ключевые механизмы:

  • Grand Central Dispatch (GCD): Основной API. Система управляет пулом потоков, создавая и уничтожая их по необходимости.
    // GCD автоматически управляет потоками
    DispatchQueue.global(qos: .background).async {
        // Код выполняется в системном фоновом потоке
    }
  • OperationQueue: Абстракция над GCD, позволяющая управлять зависимостями и отменой операций.
  • RunLoop: Управляет главным потоком (Main Thread), обрабатывая события ввода и таймеры.

Важно: Поток завершается автоматически после выполнения своей задачи (блока в async или тела Thread). Ручное управление через класс Thread требуется редко и усложняет код.