2

我很想知道多个异步NSURLConnection连接如何在内部处理?我知道他们使用内部后台线程来运行它,但可以说如果在代码中我NSURLConnection同时创建两个异步,这是否会在内部创建两个线程以并行运行它们,或者第二个连接将等待第一个完成?简而言之,请确认多个异步如何NSURLConnection实现并发?

4

3 回答 3

0

启动连接后,每个异步都NSURLConnection在自己的线程上运行(NSURLConnection必须在主线程上创建和启动异步!),并且在主线程上调用它们的委托和数据委托方法。

于 2012-12-21T07:38:42.347 回答
0

您可以将其用作“NSOperationQueue”并使用 NSOperations 执行请求的其他选项。请参阅http://www.icodeblog.com/2012/10/19/tutorial-asynchronous-http-client-using-nsoperationqueue/了解更多详情。

谢谢,
吉姆

于 2012-12-21T08:07:13.570 回答
0

我猜它会并行运行。您可以查看有关网络编程的 WWDC 会议视频。

苹果工程师表示,逐个处理 url 请求很昂贵,并行运行它们更合理。原因是,为了处理一个请求,实际上大部分时间都花在了延迟上,而不是设备和服务器中的逻辑处理。因此,并行处理请求将有效减少延迟时间浪费。

所以我猜他们不会一一做异步 NSURLConnection 因为它与这个基本理论相矛盾。

此外,我尝试使用 NSURLConnection 异步下载图像。我曾经发出过几个请求。像

for ( i = 1 to 4) {
    send request i 
 }

响应也不是按顺序的。

于 2012-12-21T08:43:15.730 回答