gcd理解学习

来源:互联网 发布:域名提供商 编辑:程序博客网 时间:2024/06/09 23:19

1.gcd  有四个关键字:同步、异步、串行、并行。

同步和异步的区别:

同步:在当前线程中执行

异步:在另一条线程中执行,有开启新线程的能力

都是针对的线程问题

串行,并行是针对队列而言的,队列中放着一个个任务

2.gcd获取串行队列有两种途径:

@1.dispatch_queue_t    queue=dispatch_queue_create(const char*label,dispatch_queue_attr);分别对应队列名称和队列属性,不过你会经常看人们传递 0 或者 NULL 给 dispatch_queue_create 的第二个参数。这是一个创建串行队列的过时方式;明确你的参数总是更好

示例:dispatch_queue_t  queue=dispatch_queue_create("wxy",null);

@2.使用主队列:(就是串行队列)

主队列是gcd自带的一种特殊的串行队列,放在主队列中的任务,都会放到主线程中执行。

3并行队列

gcd提供了默认的全局并发队列,不需要手动创建

dispatch_queue_t  global_queue=dispatch_get_global_queue(dispatch_queue_priority_t  priority,unsigned long flags);第二个参数用于以后用的,传0即可。

4.同步函数不会开启线程,异步并行队列会开启多个线程,异步串行队列只会开启一个线程。









0 0
原创粉丝点击