您的位置:首页 > 其它

多线程实现方案之GCD

2015-12-24 23:55 155 查看
<!doctype html>

多线程实现方案之GCD

多线程实现方案之GCD

GCD是底层是一种C语言,主要是替代NSthread等线程技术

GCD是苹果公司为多核的并行运算提出的解决方案

GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程

程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码

执行的步骤

将(任务)添加到队列中,GCD会自动将队列中的任务取出,放到对应的线程中执行

任务的取出遵循队列的FIFO原则:先进先出,后进后出

执行任务

GCD中有2个用来执行任务的常用函数

- 同步
只决定只在当前的线程中执行任务

dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);

- 异步
可以具备开线程的能力

dispatch_async(dispatch_queue_t queue, dispatch_block_t block);

队列的类型

并发队列 只决定执行任务是同时进行的,没有循序

系统内部自带了一个并发的全区队列,不需要手动创建

全局队列

注意:
并发队列之后在异步函数中才有效


串行队列 知识决定 将队列中的任务取出后,放在线程中,是有序的执行的

系统内部自带了一个朱队列

添加进主队列的任务都是在主线程中执行的


异步函数 + 串行队列 会创建一个子线程 ,并且执行这些任务是有序的

异步函数 + 并发队列 创建的线程个数由系统决定,执行队列中的这些人物是无序的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: