zoukankan      html  css  js  c++  java
  • 多线程基础(六)GCD基础

    更多值得学习的GCD知识,可以学习:

    Grand Central Dispatch (GCD) Reference

    GCDObjC

    1、GCD的基本概念

     
     
    • 什么是GCD
    • 全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”
    • C语言,提供了非常多强大的函数
    • GCD的优势
    • GCD是苹果公司为多核并行运算提出的解决方案
    • GCD会自动利用更多的CPU内核(比如双核、四核)
    • GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)
    • 程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码
     
     
     
     
     
     
    2、GCD的代码演示

     
    首先建议略记下下面的英文单词,真的会有助于你代码的认识,我个人发现像我英语单词不认识几个的,GCD代码涉及到那么多生僻的单词,放在代码里去记忆,容易忘记,容易被旁边的代码的单词干扰。
    这里的代码多练习几遍,直到不看源码就能敲出来
     
    首先是“并发队列”—>”异步函数"
     
    关于“并发队列”—>”异步函数”补充老师的代码:
    关于“串行队列”—>”异步函数”
    关于“(全局)并发队列”—>”同步函数”
    关于“串行队列”—>”同步函数”
    关于“主队列”—>”异步函数”
    关于“主队列”—>”同步函数”
     
     
    3、串行队列介绍

     
     
     
    异步函数:不需要等待当前代码执行完毕,就可以执行后面的代码
    同步函数:要等待当前代码执行完毕,才能继续往下执行
     
     
     
    GCD线程不是想开多少就能成功开多少的,这个是由CPU性能决定的。当CPU特别好,就能给你成功开很多个线程。
     
     
    加载网络图片使用GCD
     
     
    4、GCD常用的函数,很强大哦,必须掌握

     
     
    最常用,延迟执行
     
     
    使用栅栏函数
     
     
    GCD一次性代码
    快速敲出一次性代码:
     
    不能放在懒加载中的,原因是
     
    GCD快速迭代函数的使用
     
     
    什么是迭代:其实就是for循环
     
     
     
     
     
    下面通过一个小案例来实现快速迭代
     
    需求:让一个文件夹下面的图片全部移动另一个文件夹下面
     
    没有使用快速迭代遍历
     
    使用快速迭代遍历:
     
     
     
  • 相关阅读:
    487-3279(电话号码)
    【模板】二分图匹配
    【模板】网络最大流
    P3879 [TJOI2010]阅读理解
    10.10 考试T1 低仿机器人
    P4025 [PA2014]Bohater
    线段树合并 从入门到入土
    CF547B Mike and Feet
    10.6洛谷月赛划水记
    P4552 [Poetize6] IncDec Sequence
  • 原文地址:https://www.cnblogs.com/goodboy-heyang/p/5074668.html
Copyright © 2011-2022 走看看