【发布时间】:2013-08-28 08:31:03
【问题描述】:
以下问题/陈述仅限于我的理解,如果我在这里错了,请告诉我。
发件人:Issue with GCD and too many threads
转发 jackslash 的答案,我想知道大多数开发人员都有使用 [NSData dataWithContentsOfURL:URL] 的习惯,这似乎确实会阻塞(直到它完成)。如果您通过 URL 获取一些小细节,这可能是理想的。但是在在多进程的情况下(我的意思是同时下载多个文件),GCD 必须创建许多线程并且不是下载数据的完美方式。
因此一些专家建议使用称为[NSURLConnection sendAsynchronousRequest:queue:completionHandler: 的GCD 抽象来处理这种情况(也很理想)。
我唯一的问题是[NSURLConnection sendAsynchronousRequest:queue:completionHandler: 将如何利用 NSData dataWithContentsOfURL:URL] 创建新线程并避免我们被阻塞?
非常感谢您记录在案的任何答案。
【问题讨论】:
-
有趣的是,我的实验发现在 GCD 中使用
NSData和NSURLConnection方法在线程创建方面没有区别。在调度超过 100 个请求时,无论哪种方式都达到了大约 70 个线程的峰值。 -
@CarlVeazey...但想知道为什么专家建议使用 NSURLConnection 方法...事实上在 AFNetworking 库中他们更喜欢相同的方法...
标签: iphone ios objective-c xcode ios6