本文介绍: 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 im
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有哪些概念
- DispatchQueue,GCD队列, 一个先进先出的队列,用来接收用户提交的Task,并放在合适的线程中执行
- DispatchWorkItem, 用户任务的封装
- DispatchGroup, 用户任务组, 封装一组任务
- Workloop, 任务优先级调度
Thread Scheduling
5. DispatchQoS,任务优先级
整体架构图
原文地址:https://blog.csdn.net/m0_55782613/article/details/122999943
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_44556.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。