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