GCD

1.串行队列特点

a.以先进先出的方式,顺序调度队列的任务

b.无论队列所指定的执行函数是同步还是导步,都会等上一个任务执行完成之后再执行下一个任务

dispatch_queue_t  queue=dispatch_queue_create("zzh",DISPATCH_QUEUE_SERIAL);

2.并发队列特点:

a.以先进先出的方式,在并发调度队列中的任务执行

b.如果当前调度的任务是同步的,会等待任务执行完成后,才会去执行下一任务

c.如果当前调度的任务是异步的执行的,只要底层线程池中有可用的线程,就会马上去执行任务,不需要等待上一个任务的完成。

dispatch_queue_t queue=dispatch_queue_create("zzh", DISPATCH_QUEUE_CONCURRENT);

3.主队列特点:

a.专门用来调度主线程任务的队列

b.不会开启线程

c.以先进先出的方式,在主线程空闲时,才会调度队列中的任务在主线程执行

d.如果当前主线程在执行任务,那么无论主队列中被添加了什么任务,都不会被调度

dispatch_queue_t  queue =dispatch_get_main_queue();

4.全局队列(是系统为了方便程序员开发提供的,其工作表现与并发队列一致)与并发队列的区别:

1.全局队列:

1.1没有名称

1.2无论ARC还是MRC都不需要考虑释放内存的问题

1.3日常开发建议使用全局队列2.并发队列

2.并发队列

2.1有名字,和NSThread的name属性类似

2.2如果在MRC开发的时候,需要使用dispatch_release(q);来释放相对的对象

2.3dispatch_barrier必须使用自定义的并发队列

2.4开发第三方框架的时候,建议使用并发队列

dispatch_queue_t   queue =dispatch_get_global_queue(0,0);




最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容