GCD 重温“共产党”之路

作者: 明天就去 | 来源:发表于2017-03-30 17:34 被阅读34次

依稀记得刚接触OC的时候,就听老师在讲台上不停的重复共产党,说这东西很重要,一定要掌握。但是知道现在(一年后)干了这么长时间的iOS,竟然没有深入的研究过GCD,倍感惭愧。更奇葩的是这么长时间,竟然没有多少次用到过,也是很醉,趁着有时间,研究一下,就当是做一个笔记吧

一、作用

       由于接触的比较浅,我对GCD的主要功能理解就是:为了避免界面在处理耗时的操作时卡死,比如读取网络数据,IO,对数据库的读写等,我们会在另外一个线程中处理这些操作,然后通知主线程更新界面。(菜鸟阶段,只能用到这些,若有一日进阶大神阶段,再来更新0.o)

二、CGD的名词:

并发队列:队列中的任务并发执行dispatch_queue_tqueue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);//并行队列

串行队列:队列中的任务顺序执行 dispatch_queue_tqueue =dispatch_queue_create("getImage",DISPATCH_QUEUE_SERIAL);//串行队列

异步执行任务:dispatch_async(具备开线程能力) 

同步执行任务:dispatch_sync  (只在当前线程中执行任务,不具备开线程的能 力)

使用情况:

① 串行队列+异步函数==可开线程顺序执行任务

dispatch_queue_tqueue=dispatch_queue_create("getImage",DISPATCH_QUEUE_SERIAL);//串行队列dispatch_async(queue, ^{//异步函数

NSURL*imageUrl = [NSURLURLWithString:@"http://ac-nxp0vq41.clouddn.com/bb442f837f0c809e7c89.jpg"];

UIImage*image = [UIImageimageWithData:[NSDatadataWithContentsOfURL:imageUrl]];

NSLog(@"image:%@",image);

});

②串行队列 + 同步函数 == 可开线程并发执行任务

③并发队列 + 异步函数 == 不能开线程

④并发队列 + 同步函数 == 不能开线程

三、具体使用实例

1、有a、b、c、d 4个异步请求,需要a、b、c、d顺序执行,请求完成后进行数据处理

dispatch_queue_tqueue =dispatch_queue_create("getImage",DISPATCH_QUEUE_CONCURRENT);//串行队列

dispatch_group_tgroup =dispatch_group_create();

dispatch_group_async(group, queue, ^{

//任务1

NSLog(@"queue:1");

});

dispatch_group_async(group, queue, ^{

//任务2

NSLog(@"queue:2");

});

dispatch_group_async(group, queue, ^{

//任务3

NSLog(@"queue:3");

});

dispatch_group_notify(group,dispatch_get_main_queue(), ^{//显示图片

//任务123顺序执行完成之后,会回调此Block

});

2、延时功能

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

//延迟结束后执行的操作

});

3、一次性函数

staticdispatch_once_tonceToken;

dispatch_once(&onceToken, ^{

NSLog(@"只会执行一次");

});

网上的教程一大堆,我就不在这里献丑了 ,关键是我工作了这么长时间,用的真不怎么多,就当是自己做的一个笔记吧。

相关文章

  • GCD 重温“共产党”之路

    依稀记得刚接触OC的时候,就听老师在讲台上不停的重复共产党,说这东西很重要,一定要掌握。但是知道现在(一年后)干了...

  • OC底层原理19-GCD及函数&队列

    前面的篇章讲到了线程,本文继续在线程编程之路上探究——GCD及函数&队列。 GCD GCD(Grand Centr...

  • 菜鸟浅谈 GCD

    笔者是 iOS 开发的新手, 最近学习了一下 GCD (又称: 共产党), 怕忘了记录一下.先介绍一下 GCD, ...

  • 书摘 | 《中国共产党简史》

    中国共产党建党100周年,重温党史 最大的感受是历经波折,共产党的不屈不挠,坚持斗争和共产党员的团结一致,革命先辈...

  • 《下派笔记》五十八:重温《共产党宣言》

    “为了表示我对《共产党宣言》这部书得尊重与崇敬,下面我用普通话开始今天的党课,让我们重温学习《共产党宣言》…...

  • 加油

    共产党建党之路那么艰难都成了,你还有什么不可以?

  • 重温育儿之路

    今天有这么个机会让我来讲讲我的育儿心得的时候才发现,原来不知不觉成为某个人的妈妈已经有5个年头了,一眨眼的工...

  • 重温学习之路

    这几天在整理这几年的学习笔记,看到“个人知识管理”的笔记,随想如下: 刚开始工作的前几年,我很少...

  • 网络知识总结

    值得关注的博客: (1)iOS学习之路(资料推荐) GCD:http://www.cnblogs.com/snai...

  • who you are?

    每年必须重温一次的电影,除了《光荣之路》,还有《心灵捕手》。 是的,必须重温,年年重温。 还记得第一次看这影片时还...

网友评论

    本文标题:GCD 重温“共产党”之路

    本文链接:https://www.haomeiwen.com/subject/berpottx.html