【问题标题】:Threading Behaviour of NSURLSessionTasks from Multiple NSURLSessions?来自多个 NSURLSession 的 NSURLSessionTask 的线程行为?
【发布时间】:2016-04-29 15:40:39
【问题描述】:

假设我有 5 个 NSURLSession,我在每个下创建一个 NSURLSessionDownloadTask。然后我开始在 for 循环中运行每个任务。

线程如何处理请求?它们是单独异步执行的,还是串行处理的?

感谢您的建议!

【问题讨论】:

  • 谢谢 Rob - 好主意。
  • 顺便说一句,我建议使用单个 NSURLSession 对象进行多次下载,因为拥有多个会话对象会产生一些开销。只有五次下载可能并不重要,但如果下载次数急剧增加,您会看到一些内存影响。此外,使用单个 NSURLSession,您可以为您的 NSURLSessionConfiguration 指定 HTTPMaximumConnectionsPerHost
  • 谢谢 Rob - 问题是所有请求都有不同的 HTTP 标头,因此需要不同的 NSURLSessionConfigurations。
  • 好的。显然,您通常也可以在请求中指定标头,但听起来您的下载量并不那么重要。
  • Rob 谢谢 - 现在解决了如何根据请求设置标题 - 移至一个会话。

标签: ios multithreading nsurlsession nsurlsessiondownloadtask


【解决方案1】:

它们应该同时处理。您可以通过为会话指定一个委托并在downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite: 中记录进度来验证这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多