GCD介绍
来源:互联网 发布:spss软件安装教程 编辑:程序博客网 时间:2024/04/28 18:03
GCD
1.GCD是什么
GrandCentral Dispatch简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在MacOS X 10.6 ,iOS4及以上也可用。
2.优势
利用推迟昂贵的计算任务并且在后台运行来改善你的app响应能力。
提供了比locks和threads更加简单的并发模型,有助于避免并发时导致的bug
对于相同的模式,比如单例,GCD潜在的优化你代码的性能
3.了解一下GCD术语
Serialvs. Concurrent
serial:又称为privatedispatch queues,同时只执行一个任务。Serialqueue通常用于同步访问特定的资源或数据。当你创建多个Serialqueue时,虽然它们各自是同步执行的,但Serialqueue与Serialqueue之间是并发执行的。
Concurrent:又称为globaldispatch queue,可以并发地执行多个任务,但是执行完成的顺序是随机的。
Maindispatch queue
它是全局可用的serialqueue,它是在应用程序主线程上执行任务的。
Synchronousvs. Asynchronous
在GCD中,这两个术语描述了当函数去完成响应函数允许GCD执行的另一个任务。
Sychronous:任务顺序完成后,才返回
Asynchronous:一旦任务完成不需要等待,立即返回。然后,不会阻塞当前执行的线程
临界区(CriticalSection)
不能被并发进行的一段代码,管理共享资源
竞争条件(racecondition)
软件系统的行为,依赖于特定的顺序或者执行不可控制行为事件
死锁(Deadlock)
多个线程互相等待另一方去执行或完成另一个行为
第一个没完成等待第二个;第二个没完成等待第一个
ThreadSafe(线程安全)
多线程或并发任务不会引发问题
ContextSwitch(环境切换)
你在同一个过程中切换执行不同的线程,也就是存储回恢复执行的过程。
Concurrencyvs Parallelism
Concurrencymeans that two or more calculations happen within the same timeframe, and there is usually some sort of dependency between them.
Parallelismmeans that two or more calculations happen simultaneously.
并发vs并行
Queus:
1.FIFO
2.线程安全
Serialqueues
ConcurrentQueues
QueueTypes
mainqueue主队列刷新页面
GlobalDispatch优先级:background,low,default,high
自定义队列
- GCD介绍
- GCD介绍
- GCD介绍
- GCD介绍
- GCD介绍
- gcd介绍
- GCD介绍
- GCD介绍
- GCD介绍
- GCD介绍
- GCD介绍
- GCD介绍
- GCD介绍(转)
- GCD-queue介绍
- GCD介绍(四):完结
- GCD使用介绍
- IOS GCD介绍
- gcd 简单介绍
- Java String 下的replaceAll
- cocos2d游戏生命周期
- 探索推荐引擎内部的秘密-第 1 部分: 推荐引擎初探
- java 方法参数变长变量的写法
- An Analytical Model for a GPU Architecture with Memory-level and Thread-level Parallelism Awareness
- GCD介绍
- make详解
- IOS block 教程
- UIKit 03、编写代码隐藏iPhone软键盘
- Android图形合成和显示系统---基于高通MSM8k MDP4平台
- 个人重启Eclipse时报Location of the Android SDK has not been setup in the preferences的解决方法
- 增大/减少Mp3文件的默认音量—令其统一音量
- CentOS下配置iptables防火墙
- Java 序列化和反序列化