Concurrent queue并行处理任务
每个app默认提供了4个可以并行执行任务的队列(concurrent queue)
它分成4个不同的优先级,由高到低分别是:
DISPATCH_QUEUE_PRIORITY_HIGH
DISPATCH_QUEUE_PRIORITY_DEFAULT
DISPATCH_QUEUE_PRIORITY_LOW
DISPATCH_QUEUE_PRIORITY_BACKGROUND
2.1
@IBAction func downloadImages(sender: UIButton) {
// Add concurrent queue
let currQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
// 自定义并行队列
//let currQueue = dispatch_queue_create("customCurrQueue", DISPATCH_QUEUE_CONCURRENT)
for i in 0..<4 {
dispatch_async(currQueue) { () -> Void in
let imageViewUrls = Downloader.downloadImageWithURL(self.imageUrls[i])
// UI需要在主线程下更新
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.imageViewArr[i].image = imageViewUrls
print(i)
})
}
}