диспетчеризация _асинхронная и [NSURLConnection sendSynchronousRequest]

Есть множество вопросов по этой теме и много советов, говорящих НЕ использовать sendSynchronousRequest в асинхронной отправке _, потому что это блокирует поток, а GCD создаст множество новых рабочих потоков для обслуживания всех синхронных запросов URL.

Кажется, ни у кого нет однозначного ответа на то, что iOS 5, [NSURLConnection sendAsynchronousRequest :queue :completeHandler :] делает за кулисами.

В одном сообщении, которое я прочитал, говорится, что он «может» оптимизировать и «может» использовать цикл выполнения -, но, конечно, не будет создавать новый поток для каждого запроса.

Когда я приостанавливаю свой отладчик при использовании очереди sendAsynchronousRequest ::завершения обработчика, трассировка стека выглядит следующим образом:

screenshot

.. теперь кажется, что sendAsynchronousRequest :очередь :завершенияHandler, на самом деле вызывает sendSynchronousRequest, и у меня все еще есть тонны потоков, созданных, когда я использую асинхронный метод вместо метода синхронизации.

Да, у асинхронного вызова есть и другие преимущества, которые я не хочу обсуждать в этом посте.

Все, что меня интересует, - это использование производительности/потока/системы, и если мне хуже, используйте вызов синхронизации внутри асинхронной отправки _вместо использования асинхронного вызова.

Мне также не нужны советы по использованию асинхронных вызовов ios4, это чисто для образовательных целей.

Есть ли у кого-нибудь вразумительные ответы на этот вопрос?

Спасибо

6
задан bandejapaisa 17 July 2012 в 16:28
поделиться