GCD介绍

2 篇文章 0 订阅

GCD


1.GCD是什么

GrandCentral Dispatch简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在MacOS X 10.6 iOS4及以上也可用。


2.优势


利用推迟昂贵的计算任务并且在后台运行来改善你的app响应能力。


提供了比locksthreads更加简单的并发模型,有助于避免并发时导致的bug


对于相同的模式,比如单例,GCD潜在的优化你代码的性能


3.了解一下GCD术语


Serialvs. Concurrent


serial:又称为privatedispatch queues,同时只执行一个任务。Serialqueue通常用于同步访问特定的资源或数据。当你创建多个Serialqueue时,虽然它们各自是同步执行的,但SerialqueueSerialqueue之间是并发执行的。


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

自定义队列


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值