异步下载 主线程展示

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
[self setImage:image forKey:[url absoluteString]];
dispatch_async(dispatch_get_main_queue(), ^{
completion(image);
});
});

// dispatch_sync 和 dispatch_async 区别:
// dispatch_async(queue,block) async 异步队列,dispatch_async 函数会立即返回, block会在后台异步执行。
// dispatch_sync(queue,block) sync 同步队列,dispatch_sync 函数不会立即返回,即阻塞当前线程,等待 block同步执行完成。
// GCD Queue 分为三种
// 1,The main queue :主队列,主线程就是在个队列中。
// 2,Global queues : 全局并发队列。
// 3,用户队列:是用函数 dispatch_queue_create 创建的自定义队列

你可能感兴趣的:(异步下载 主线程展示)