OC中得多线程---GCD

GCD有两个十分重要的概念

1.队列:

>1.串行队列

一、系统主队列

二、自己穿件的串行队列

>2.并行队列

一、系统全局队列

二、自己创建的并行队列:

2.任务:

>1.同步任务

>2.异步任务:

任务和队列之间的关系

1.队列中需要存放任务

2.任务需要在队列中执行

同步任务可以放到串行队列 也可以放在并行队列 但是任务是在主线程执行还是在子线程执行任务的方式是同步的还是异步的取决于任务自身以及所在队列

异步任务可以放到串行队列 也可以放在并行队列 但是任务是在主线程执行还是在子线程执行任务的方式是同步的还是异步的取决于任务自身以及所在队列

1自己创建的串行队列中

在自己创建的串行队列中 同步任务在主线程中是同步执行的 而异步方法是在子线程中同步执行的


2系统的主线程中

在系统的主线程中 不可以创建主线程的同步方法会造成界面真死,而创建异步任务的话 任务是在主线程中完成的 是同步执行的

3自行创建的并行队列中

在自己创建的并行队列中 创建的同步任务 任务是在主线程中完成的 而且是同步完成 而创建异步任务 任务是在子线程中完成的 并且是异步完成

4获取全局队列

在全局队列中 创建同步任务 任务是在主线程中完成的 而且是同步完成 而异步任务呢 任务是在子线程中完成 还是异步完成 一个任务的开始不用等待另外一个任务的完成

还有一种是是线程锁 

这里可以用来创建单例 想必 单例已经不用我来说了吧

具体创建方法如下


这里的dispatch_once是一个API会有提示的


还有一个就是限时执行的线程方法如下



恩 好吧就这么多

推荐阅读更多精彩内容