Есть множество вопросов по этой теме и много советов, говорящих НЕ использовать sendSynchronousRequest в асинхронной отправке _, потому что это блокирует поток, а GCD создаст множество новых рабочих потоков для обслуживания всех синхронных запросов URL.
Кажется, ни у кого нет однозначного ответа на то, что iOS 5, [NSURLConnection sendAsynchronousRequest :queue :completeHandler :] делает за кулисами.
В одном сообщении, которое я прочитал, говорится, что он «может» оптимизировать и «может» использовать цикл выполнения -, но, конечно, не будет создавать новый поток для каждого запроса.
Когда я приостанавливаю свой отладчик при использовании очереди sendAsynchronousRequest ::завершения обработчика, трассировка стека выглядит следующим образом:
.. теперь кажется, что sendAsynchronousRequest :очередь :завершенияHandler, на самом деле вызывает sendSynchronousRequest, и у меня все еще есть тонны потоков, созданных, когда я использую асинхронный метод вместо метода синхронизации.
Да, у асинхронного вызова есть и другие преимущества, которые я не хочу обсуждать в этом посте.
Все, что меня интересует, - это использование производительности/потока/системы, и если мне хуже, используйте вызов синхронизации внутри асинхронной отправки _вместо использования асинхронного вызова.
Мне также не нужны советы по использованию асинхронных вызовов ios4, это чисто для образовательных целей.
Есть ли у кого-нибудь вразумительные ответы на этот вопрос?
Спасибо