zoukankan      html  css  js  c++  java
  • GCD基本思想

    GCD的基本思想就是操作s放在队列s中去执行

    1.操作使用Blocks定义

    2.队列负责调度任务执行所在线程遗迹具体的执行时间

    3.队列的特点是先进先出(FIFO)的,新添加至队列的操作都会排在队尾

    提示

    GCD的函数都是以diapatch(分配、调度)开头的

    队列

    dispatch_queue_t

      串行队列,队列中的任务只会顺序执行

      并行队列,队列中的任务通常会并发执行

    操作

     dispatch_async 异步操作,会并发执行,无法确定任务的执行顺序

     dispatch_sync 同步执行,会依次顺序执行,能够决定任务的执行顺序

    串行队列,同步任务。不需要新建线程

    串行队列,异步任务。需要一个子线程,线程的创建和回收不需要程序员参与(最安全的一个选择,串行队列只能创建)

    并行队列,同步任务。不需要创建线程

    并行队列,同步任务,有多少个任务,就开N个线程执行

    无论什么队列什么任务,线程的创建和回收都不需要程序员参与

    线程的创建回收工作是由队列负责的


    GCD小结

    1.通过GCD,程序员不用直接喝线程打交道,只需要向队列添加代码块即可

    2.GCD在后端管理着一个线程池,GCD不仅决定着代码块将在哪个线程被执行,它还根据可用的系统资源对这些线程进行管理。从而让开发者从线程管理的工作中解放出来,通过集中的管理线程,缓解大量线程呗创建的问题

    3.使用GCD,程序员可以将工作考虑为一个队列,而不是一堆线程,这种并行的抽象模型更容易掌握和使用。

     

  • 相关阅读:
    IDEA 初次使用,记录心得
    排序算法代码总结-java版
    SpringMVC支持多对象Form Data绑定
    密码安全性检查代码
    PERL/LEX/YACC技术实现文本解析--XML解析
    C代码工具--自动生成enum值和名字映射代码
    再谈CSHELL对C程序员的价值
    怎样设计一个运行日志服务
    Excel里内嵌在线翻译
    EOS -- 一种灵巧的系统运行跟踪模块
  • 原文地址:https://www.cnblogs.com/YTzZ/p/4918471.html
Copyright © 2011-2022 走看看