我试图执行尽可能多的同时http-downloads一个IPad2(ios6.0).这是纯粹的测试在这个设备上可能的.甚至对GUI性能不感兴趣(如果没有响应,则不重要)
我创建了一个特殊的HTTP服务器,它向客户端发送x分钟的数据.收到的数据并不重要.我只是测量速度有多少并发下载.
我已经实现了2种不同的调度方式12个HTTP请求.
的NSOperation
一个是通过在队列中使用NSOperation对象完成的,并将NSOperationQueueDefaultMaxConcurrentOperationCount设置为12
NSThread
第二个实现是通过创建12个NSThreads来执行同步http请求.
请求都发送到同一目的地IP.
意见
我观察到的是,在这两种情况下,第6到第12个请求得到一个TimeOut(错误代码-1001).如果1将timeout-value设置为80.0秒,我看到第1次完成后第6次下载开始.
问题
>在IOS中有多少并发下载的限制?
>是否有其他方式执行这些并发下载?
>有没有办法将线程绑定到核心(这样它不会得到一个中断,像C中的cpuaffinity)或线程优先级
解决方法
您最多可以同时连接到同一台服务器.这是一个iOS固定限制,可能是因为某些http协议约束.您可以阅读更多信息
here.