美文网首页
iOS 开发_GCD函数与队列一、初探

iOS 开发_GCD函数与队列一、初探

作者: iOS_PM_WEB_尛鹏 | 来源:发表于2018-12-21 10:45 被阅读0次

【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!

1.应用场景:

多线程神器---GCD,很多开发的场景中,我们都会使用到。

2.实现目标:

探究GCD,这个平时我们经常会用,但是又不知道为什么的盲区???

3.代码说明:【GCD核心:函数和队列】

1)GCD的简介:

什么是GCD???
GCD--->全称 Grand Central Dispatch(重点在Dispatch。调度!)
纯C语言,提供了非常多而且强大的函数
优势:

①GCD是苹果公司为多核的并行运算提出的解决方案
②GCD会自动利用更多的CPU内核(比如双核、四核)
③GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码。

2)将任务添加到队列,并且指定执行任务的函数
  • 任务使用block封装
  • 任务的block没有参数也没有返回值
  • 执行任务的函数
    • 异步'dispatch_async'
      • 不用等待当前语句执行完毕,就可以执行下一条语句
      • 会开启线程执行block的任务
      • 异步是多线程的代名词
    • 同步'dispatch_sync'
      • 必须等待当前语句执行完毕,才会执行下一天语句
      • 不会开启线程
      • 在当前执行block的任务


        image.png
3)队列 调度上都符合FIFO原则(先进先出 ---堆的规则),执行上串行队列依旧可控,并行队列中不一定

①串行队列 --->依次调度,执行结果属于排队规则


image.png

②并行队列 --->并行调度,执行结果属于插队规则, 执行顺序不能把握


image.png

相关文章

  • iOS 开发_GCD函数与队列一、初探

    【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢...

  • iOS开发多线程之GCD

    iOS开发多线程之GCDiOS开发之GCD同步任务加强iOS开发之GCD串行队列iOS开发之GCD并发队列 GCD...

  • iOS开发之GCD并发队列

    iOS开发多线程之GCDiOS开发之GCD同步任务加强iOS开发之GCD串行队列iOS开发之GCD并发队列 03 ...

  • iOS开发之GCD同步任务加强

    iOS开发多线程之GCDiOS开发之GCD同步任务加强iOS开发之GCD串行队列iOS开发之GCD并发队列 004...

  • GCD 底层源码分析(一)

    GCD 初探函数和队列 GCD 简介 什么是GCD? 全称是 Grand Central Dispatch,纯 C...

  • iOS开发之GCD串行队列

    iOS开发多线程之GCDiOS开发之GCD同步任务加强iOS开发之GCD串行队列iOS开发之GCD并发队列 实例d...

  • iOS开发多线程篇—GCD介绍(转)

    iOS开发多线程篇—GCD介绍 用异步函数往并发队列中添加任务--同时开启三个子线程 用异步函数往串行队列中添加任...

  • GCD之函数与队列初探

    一、前言 在iOS开发过程中,我们知道多线程技术是使用最多的情况,能快速的执行多个调度任务的执行。而在多线程开发过...

  • iOS Objective-C GCD之函数篇

    iOS Objective-C GCD之函数篇 1. GCD 中函数简介 在上一篇队列篇中我们简要的介绍了GCD中...

  • 23.iOS底层学习之GCD函数和队列

    本章提纲:1、GCD的介绍2、函数3、队列4、队列与函数的组合使用5、GCD部分源码解读6、GCD部分习题 一、G...

网友评论

      本文标题:iOS 开发_GCD函数与队列一、初探

      本文链接:https://www.haomeiwen.com/subject/ojopkqtx.html