Я провел простой тест с DispatchQueue:
DispatchQueue.global(qos: .background).sync {
if Thread.isMainThread {
print("Main thread")
}
}
Распечатано:
Main thread
Почему этот код выполняется в основном потоке? Это должно выполняться в фоновом потоке (он был добавлен в фоновую очередь), верно?
sync
: В целях оптимизации эта функция по возможности вызывает блок в текущем потоке. - person dan   schedule 23.10.2018