GCD系列 一 整体介绍 (1)

GCD是什么

按照官方文档的解释,针对在多核系统上运行并发执行程序,提供了系统性的支持。支持包含语言中的方法,以及运行时库。可以应用在macOS、iOS、watchOS、tvOS上

Dispatch, also known as Grand Central Dispatch (GCD), contains language features, runtime libraries, and system enhancements that provide systemic, comprehensive improvements to the support for concurrent code execution on multicore hardware in macOS, iOS, watchOS, and tvOS.

为什么需要使用GCD

  1. 为了提升程序对资源(多核CPU)的利用效率, 这样你的程序可以在同一时间运行多个线程(在多核CPU上),会让你的应用更快
  2. 可以提升你的程序的响应能力。在iOS上,用户操作以及UI线程的操作是放在主线程的,此时如果存在其他的任务,你可以将这些任务放在子线程,避免堆主线程时间的占用,这样间接提升了主线程的响应能力。
  3. GCD系统会自动根据程序的需要,系统硬件的能力,控制任务在线程上的调度,平衡多任务的执行
  4. 此外,从个人的理解上,GCD封装了系统上对thread的使用接口,更方便使用;同时,增加了任务调度的能力,避免上层在使用多任务时调度多任务的负担

GCD有哪些概念

Queues and Tasks

  1. DispatchQueue,GCD队列, 一个先进先出的队列,用来接收用户提交的Task,并放在合适的线程中执行
  2. DispatchWorkItem, 用户任务的封装
  3. DispatchGroup, 用户任务组, 封装一组任务
  4. Workloop, 任务优先级调度

Thread Scheduling
5. DispatchQoS,任务优先级

System Event Monitoring

  1. DispatchSource, GCD事件源, 封装底层系统的事件
  2. DispatchIO,文件IO相关的对象
  3. DispatchData, 内存封装对象

Task Synchronization(任务同步)

  1. DispatchSemaphore, 基于信号封装的GCD多任务之间的信号量

Time Constructs 时间相关对象

  1. DispatchTime
  2. DispatchWallTime
  3. DispatchTimeInterval
  4. DispatchTimeoutResult

整体架构图

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值