запускает обработчики завершения в главной очереди, и вы можете видеть, что у него есть цикл выполнения в фоновом потоке.

м, я создал экземплярURLSessionTask:

let task = URLSession.shared.dataTask(with: url) { (data, response, error) in 
   print (\(Thread.current))
}
// I start the task by
task.resume()

Я хочу понять, является лиURLSessionTask экземпляр работает наглавный нить по умолчанию или вфон нить. Итак, я печатаюThread.current .

Когда я запускаю свой код, он распечатывает:

<NSThread: 0x170273980>{number = 4, name = (null)}

Мои вопросы:

какая нитьURLSessionTask работает по умолчанию? Основная тема или фоновая тема?

Почему текущий поток показывает ноль в потокеname? Означает ли это, что по умолчанию он работает в фоновом потоке? (Вижу name = "main" дляprint в основной теме)

В общем, нужно ли бежатьURLSessionTask с GCD, чтобы заставить его работать в фоновом потоке или нет? Я спрашиваю об этом, потому что я видел, что некоторые учебники не используют GCD для запускаURLSessionTask, они используют только GCD для запуска обработчика завершения в главном потоке.

Ответы на вопрос(1)

Ваш ответ на вопрос