我正在尝试执行尽可能多的同时 http 下载 IPad2 ( ios6.0 )。这纯粹是为了测试此设备上的可能性。甚至对 GUI 性能不感兴趣(如果它没有响应则不重要)
我创建了一个特殊的 HTTP 服务器,它向客户端发送 x 分钟的数据。接收到的数据并不重要。我只是测量速度和并发下载的数量。我已经实现了 2 种不同的方式来调度 12 个 HTTP 请求。
NSOperation
一种是通过在队列中使用 NSOperation 对象并将 NSOperationQueueDefaultMaxConcurrentOperationCount 设置为 12 来完成
NSThread
第二种实现是通过创建 12 个 NSThreads 来执行同步 http-request。
请求都发送到相同的目标 IP。
观察
我观察到的是,在这两种情况下,第 6 到第 12 个请求都会获得 TimeOut(错误代码 -1001)。如果 1 将超时值设置为 80.0 秒,我看到第 1 次下载完成后第 6 次下载开始。
问题
- IOS 对同时下载的数量有限制吗?
- 还有其他方法可以执行这些并发下载吗?
- 有没有办法将线程绑定到核心(这样它就不会受到中断,如 C++ 中的 cpuaffity )或线程优先级