Using GCD to offload some of long running tasks on different threads is one of way to keep the main thread from blocking.
QOS
any dispatch_async can assign a Quality of Service values for iOS system to optimize the schedules of threads.
QOS will be inferred.