Swift 多线程-并行调度队列(Concurrent queue)

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)
            })
            
        }
        
    }

你可能感兴趣的:(Swift 多线程-并行调度队列(Concurrent queue))