定义2个imageView
6个button
前三个打印 后三个控制显示
- (IBAction)chuanxing:(UIButton *)sender {
//创建队列对象 DISPATCH_QUEUE_SERIAL//串行的队列 "com.queue.serail"标识
dispatch_queue_t serailQueue = dispatch_queue_create("com.queue.serail", DISPATCH_QUEUE_SERIAL);
//开启一个队列 用dispatch_async dispatch_async(开启)
dispatch_async(serailQueue, ^{
NSLog(@"thread ==%@ 1",[NSThread currentThread]);
//调用 系统的主队列 更新 打印最后显示
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"更新主线程");
});
});
//开启一个队列
dispatch_async(serailQueue, ^{
NSLog(@"thread ==%@ 2",[NSThread currentThread]);
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"更新主线程");
});
});
//开启一个队列
dispatch_async(serailQueue, ^{
NSLog(@"thread == %@ 3" ,[NSThread currentThread]);
});
}
- (IBAction)bingxing:(UIButton *)sender {
//并行
dispatch_queue_t currentQueue = dispatch_queue_create("com.queue.currennt", DISPATCH_QUEUE_CONCURRENT);
//开启一个队列
dispatch_async(currentQueue, ^{
NSLog(@"thread ===%@ 1 ",[NSThread currentThread]);
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"更新主线程");
});
});
//开启一个队列
dispatch_async(currentQueue, ^{
NSLog(@"thread ===%@ 2 ",[NSThread currentThread]);
});
//开启一个队列
dispatch_async(currentQueue, ^{
NSLog(@"thread ===%@ 3 ",[NSThread currentThread]);
});
//开启一个队列
dispatch_async(currentQueue, ^{
NSLog(@"thread ===%@ 4 ",[NSThread currentThread]);
});
}
- (IBAction)group:(id)sender {
//创建一个组
dispatch_group_t groupQueue = dispatch_group_create();
//创建队列去执行 默认优先级DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_queue_t groupQueueT = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//优先级第 DISPATCH_QUEUE_PRIORITY_HIGH 优先级高于其他
dispatch_queue_t groupQueueT2 = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0);
//将groupQueueT 放入到groupQueue组
dispatch_group_async(groupQueue, groupQueueT, ^{
NSLog(@"第一组 %@",[NSThread currentThread]);
});
//将groupQueueT2 放入到groupQueue组 然后根据不同的优先级去打印
dispatch_group_async(groupQueue, groupQueueT2, ^{
NSLog(@"第二组 %@",[NSThread currentThread]);
});
dispatch_group_async(groupQueue, groupQueueT, ^{
NSLog(@"第三组 %@",[NSThread currentThread]);
});
dispatch_group_async(groupQueue, groupQueueT, ^{
NSLog(@"第四组 %@",[NSThread currentThread]);
});
//完成所有的时候 传给主线程
dispatch_group_notify(groupQueue, dispatch_get_main_queue(), ^{
NSLog(@"所有组 执行完成");
});
}
//串行显示图片
- (IBAction)serail:(id)sender {
dispatch_queue_t queueT = dispatch_queue_create("com.queueT", DISPATCH_QUEUE_SERIAL);
__weak ViewController *weakSelf = self;
dispatch_async(queueT, ^{
UIImage *image =[weakSelf downloadImage:@"http://szb.loulanwang.com/1/1/2011-11/18/14/res19_attpic_brief.jpg"];
dispatch_async(dispatch_get_main_queue(), ^{
_image1.image = image;
});
});
__weak ViewController *weakSelf2 = self;
dispatch_async(queueT, ^{
UIImage *image =[weakSelf2 downloadImage:@"http://ww1.sinaimg.cn/mw600/77d20c22jw1e075vp5rtsj.jpg"];
dispatch_async(dispatch_get_main_queue(), ^{
_image2.image = image;
});
});
}
-(UIImage *)downloadImage:(NSString *)url{
NSURL *urlaa = [NSURL URLWithString:url];
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:urlaa]];
NSLog(@"%@",[NSData dataWithContentsOfURL:urlaa]);
return image;
}
//并行显示图片
- (IBAction)current:(id)sender {
dispatch_queue_t Current = dispatch_queue_create("com.cruuent", DISPATCH_QUEUE_CONCURRENT);
__weak ViewController *weakSelf = self;
dispatch_async(Current, ^{
UIImage *image =[weakSelf downloadImage:@"http://img.boqiicdn.com/Data/Bbs/Users/208/20844/2084451/img78251405410903_thumb.jpg"];
dispatch_async(dispatch_get_main_queue(), ^{
_image1.image = image;
});
});
__weak ViewController *weakSelf2 = self;
dispatch_async(Current, ^{
UIImage *image =[weakSelf2 downloadImage:@"http://att2.citysbs.com/hangzhou/2015/07/08/15/middle_615x616-151214_v2_17771436339534966_72b8318928bd9d0a9bf6674c1b4f73be.jpg"];
dispatch_async(dispatch_get_main_queue(), ^{
_image2.image = image;
});
});
}
//组队列同时显示
- (IBAction)groupImage:(UIButton *)sender {
//创建组
dispatch_group_t group = dispatch_group_create();
//创建组队列 优先级
dispatch_queue_t groupT = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
__block UIImage *image1 = nil;
__weak ViewController *weakSelf =self;
dispatch_group_async(group, groupT, ^{
image1 = [weakSelf downloadImage:@"http://a.hiphotos.baidu.com/image/pic/item/8644ebf81a4c510f19c75c136259252dd42aa5bc.jpg"];
});
__block UIImage *image2 = nil;
__weak ViewController *weakSelf2 =self;
dispatch_group_async(group, groupT, ^{
image2 = [weakSelf2 downloadImage:@"http://a.hiphotos.baidu.com/image/pic/item/8644ebf81a4c510f19c75c136259252dd42aa5bc.jpg"];
});
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
_image1.image = image1;
_image2.image = image2;
});
}