【发布时间】:2013-03-05 13:26:45
【问题描述】:
我正在尝试使用 Objective-C 构建一个基于多连接的持续下载模块。
我设置了一个新的NSThread来处理NSURLConnection的事件(比如connection:didReceivedData:)。但是我发现我的下载速度并没有我在电脑上测试的那么快。
当我记录我的模块的一些信息时,我发现只有 6 个连接从服务器接收到数据,即使我启动了 60 个连接。
我在windows PC上测试后发现它的连接数远大于6。
所以我写了另一个测试应用程序来测试当我的下载模块运行时我是否可以在另一个应用程序中建立一些连接。
我编程在主线程中创建 100 个连接,在后台线程中创建 100 个连接,使用[[NSRunLoop currentLoop] run]; 阻止线程退出,使用锁将数据到达的连接存储在共享的 NSMutableSet 中以避免资源冲突,每秒转储这个可变集。
然后我发现可变集中还有6个live connection(有数据到达)。
所以我相信在 Mac/Cocoa 中每个进度的 NSURLConnection 计数是有限制的。
我想知道如何使限制更大,例如 20 或其他?
非常感谢。
【问题讨论】:
-
我遇到了同样的问题。我阅读了有关阻止 konrness.com/php5/how-to-prevent-blocking-php-requests 的 php 会话的信息,但对我来说并非如此。我的脚本只是休眠 2 秒然后退出。
标签: macos cocoa nsurlconnection limit progress