GCD系列 一 整体介绍 (1)

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

Queues and Tasks

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

Thread Scheduling
5. DispatchQoS,任务优先级

System Event Monitoring

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

Task Synchronization(任务同步)

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

Time Constructs 时间相关对象

DispatchTimeDispatchWallTimeDispatchTimeIntervalDispatchTimeoutResult 整体架构图

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/993756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存