0

在我的一个项目中,我们正在开发一个有趣的功能,那就是我们有一个 rest json 响应,它包含 100 个媒体下载 url。由于某些安全原因,从收到响应的时间起,这些 URL 的有效期为 20 秒以开始下载过程。这里重要的是所有 100 个 URL 应该在 20 秒内开始下载过程,那些可以在稍后完成我们没有任何问题,但重要的是那些应该在 REST 响应时间的 20 秒内开始下载过程。

我们在 iOS 中有并发多线程概念,但我不确定,所有线程将在 20 秒内启动 100 个 url 的下载过程。

请让我知道您对此的看法。提前致谢。

4

1 回答 1

0

我会使用以下方法:

let urls = [URL]() // your URLs here

let queue = OperationQueue()
queue.maxConcurrentOperationCount = 120 // to have capacity for all operations
queue.qualityOfService = .userInitiated // to have higher priority of start

let operations = urls.map { url in
    BlockOperation(block: {
        // load url code here, better as one function call here
    })
}
queue.addOperations(operations, waitUntilFinished: false)
于 2020-04-06T06:25:03.167 回答