首页 > 代码库 > iOS多线程开发小demo7 GCD队列组

iOS多线程开发小demo7 GCD队列组

//  DYFViewController.m//  623-08-队列组////  Created by dyf on 14-6-23.//  Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved.//#import "DYFViewController.h"@interface DYFViewController ()@property (weak, nonatomic) IBOutlet UIImageView *iconV1;@property (weak, nonatomic) IBOutlet UIImageView *iconV2;@property (weak, nonatomic) IBOutlet UIImageView *bigIconV;@end@implementation DYFViewController- (void)viewDidLoad{    [super viewDidLoad];	// Do any additional setup after loading the view, typically from a nib.}- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{    NSLog(@"%@", [NSThread currentThread]);    dispatch_group_t group = dispatch_group_create();    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);        __block UIImage *icon1 = nil;    dispatch_group_async(group, queue, ^{        NSLog(@"%@", [NSThread currentThread]);        //        icon1 = [self imageWithURL:@"http://image.cache.xiu8.com/live/125/125/997729.jpg"];            });    __block UIImage *icon2 = nil;    dispatch_group_async(group, queue, ^{        NSLog(@"%@", [NSThread currentThread]);        //        icon2 = [self imageWithURL:@"http://news.baidu.com/z/resource/r/image/2014-06-22/b2a9cfc88b7a56cfa59b8d09208fa1fb.jpg"];    });        dispatch_group_notify(group, dispatch_get_main_queue(), ^{        NSLog(@"%@", [NSThread currentThread]);        //        self.iconV1.image = icon1;        self.iconV2.image = icon2;                UIGraphicsBeginImageContextWithOptions(CGSizeMake(200, 100), NO, 0);        [icon1 drawInRect:CGRectMake(0, 0, 100, 100)];        [icon2 drawInRect:CGRectMake(100, 0, 100, 100)];        self.bigIconV.image = UIGraphicsGetImageFromCurrentImageContext();                UIGraphicsEndImageContext();    });}- (UIImage *)imageWithURL:(NSString *)iconPath{    NSLog(@"%@", [NSThread currentThread]);    NSURL *url = [NSURL URLWithString:iconPath];    NSData *data = [NSData dataWithContentsOfURL:url];    return [UIImage imageWithData:data];}@end

 小结:

------------队列组------

1.有这么一种需求

·首先:分别异步执行2个耗时的操作

·其次:等2各异步操作都执行完毕后,再回到主线程执行操作

 

2.若想要快速高效的实现上述需求,可以考虑用队列组