技术源于生活,服务生活 Terry 随笔

GCD 记录,相关函数说明

2015-11-04
Terry
iOS

什么是GCD

GCD 是 libdispatch 的市场名称,作为 Apple 的一个库, 为 并发代码 在多核硬件上执行提供有力支持,有以下几个优点

  1. GCD可以在后台运行费时间的计算任务,这将改善应用程序的响应能力
  2. 易用使用
  3. 对一些常见模式(如单例)有高性能的原语优化能力(能更优化你的速度)

GCD工作模式

将一个 Block 放到一个指定的 队列 中,根据不同的队列对其中的 Block 进行调用,帮助我们处理了线程并发过程中的问题,使用多线程变得更加容易.还调试集成了事件控制系统,如信号,计时器等

Dispatch 对象

是纯C语言的,但有面向对象的风格. Dispatch Object 像Cococa对象一样使用引用计数.但 Dispatch Object 并不参与垃圾回收系统,所以必须使用 dispatch_releasedispatch_retain 函数来操作对象.

GCD 队列类型

1: The main queue

dispatch_get_main_queue()主队列,是一个串行队列.提交到此队列的会在主线程中执行.

2: Global queue

dispatch_get_global_queue()全局队列,有不同的优先级别.是一个并发队列,由整个进程共享

3: user queue

dispatch_queue_create()用户队列,自行创建,可以是串行或并行

执行Block

dispatch_async 和 dispatch_sync

做的事都是一样的.就是一个异步,一个同步. sync会等待block的代码捃完成后再返回


下一篇 iOS 加急审核

Content