Main queue — serial-очередь UI-потока; работа с UIKit должна выполняться на ней, иначе гонки и краши.
Разбор
- После сети: DispatchQueue.main.async для update UI.
- Тяжёлые вычисления на main дают фризы FPS.
- MainActor в Swift concurrency формализует то же правило.
- Thread.isMainThread полезен в отладке.
Итог
UIKit считается thread-safe только с main queue.