码迷,mamicode.com
首页 > 其他好文 > 详细

GCD 常用操作

时间:2015-12-04 23:00:09      阅读:350      评论:0      收藏:0      [点我收藏+]

标签:

GCD多线程操作

1)用得最多的操作

 

//获取全局队列

        dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

        //异步执行

        dispatch_async(queue, ^{

            //下载图片

            

            dispatch_async(dispatch_get_main_queue(), ^{

                //回到主线程更新UI

            });

        });

?

 

2)延时执行
1-调用NSObject方法
[Self performSelector:@seletor(run) withObject:nil afterDelay:2.0];
2-GCD(更好用,不用重新生成方法)

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        NSLog(@"2222");

    });

 

3)保证方法在整个程序只执行一次

 

static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        

        });

?

 

4)组操作,多个请求,请求完成后再执行操作

 

//创建一个组,

    dispatch_group_t group = dispatch_group_create();

    //开启一个任务下载图片1

    __block UIImage *image1 = nil;

    dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        //image1 = [];

    });

    

    __block UIImage *image2 = nil;

    dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        //image2 = [];

    });

    

    dispatch_group_notify(group, dispatch_get_main_queue(), ^{

        //image1

        //image2

    });

 

GCD 常用操作

标签:

原文地址:http://www.cnblogs.com/LJYliu/p/5020642.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!