DevPrep

Все темы › Многопоточность и асинхронное программирование

Runloop

Middle PRO

Суть

RunLoop — цикл обработки событий, привязанный к потоку: он ждёт событие, обрабатывает его и снова засыпает, не тратя CPU. У каждого потока может быть ровно один run loop, но он не создаётся автоматически: объект появляется лениво при первом обращении к RunLoop.current, а крутится только если его явно запустить (run()). Исключение — главный поток: UIApplicationMain запускает его run loop за вас, и именно он обрабатывает тач-события, таймеры, перерисовку и колбэки DispatchQueue.main.

Источники событий:

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store