zoukankan      html  css  js  c++  java
  • iOS中的GCD线程

    一、什么是GCD
         全称是Grand Central Dispatch ,纯C语言编写,提供非常多强大的函数,是目前苹果官网推荐的多线程开发方法,NSOperation 便是基于GCD的封装
     
    二、GCD的优势
       1、为多核的并行运算提出了解决方案
       2、GCD会自动利用更多的CPU内核,比如双核,四核
       3、GCD能够自动管理线程的生命周期(创建线程,调度任务,销毁线程)
       4、程序员只需要告诉GCD想要执行什么任务,不要编写任何线程管理代码
     
    三、GCD的两个核心概念
       1、任务:执行什么操作
       2、队列:用来存放任务
     
    四、队列可以分为两大类型:
        1、 串行队列:(Serial Dispatch Que)只能有一个线程,加入到队列中的操作按添加顺序依次执行,一个任务执行完毕后,才能执行下一个任务
        2、并发队列:(Concurrent Dispatch Queue)可以有多个线程,操作进来以后他会将这些线程安排在可用的处理器上,同时保证先进的任务优先处理
        3、还有一个特殊的队列就是主队列,主队列中永远只有一个线程(主线程),用来执行主线程的操作任务
     
    五、采用GCD做多线程,可以抽象为两步
        1、找到队列{主队列或者串行队列或并行队列}
        2、在队列中用同步或者异步的方式执行任务
     
    六、执行队列中任务的两种形式
        1、同步:只有在当前线程执行任务,不具备开启新线程的能力
        2、异步:可以在新的线程中执行任务,具备开启新线程的能力
     
    七、GCD创建的线程任务有四种执行方式
        1、 串行同步 (主线程)
        2、 串行异步(子线程)
        3、 并行同步(子线程)
        4、 并行异步(子线程)
  • 相关阅读:
    maptalks 开发GIS地图(16)maptalks.three.09
    maptalks 开发GIS地图(15)maptalks.three.08
    maptalks 开发GIS地图(14)maptalks.three.07
    maptalks 开发GIS地图(12)maptalks.three.05 bar-music
    Use mongoose-CRUD operations
    First Mongoose Model
    MongoDB-1-CRUD Operations
    Mongo DB-0
    Kill port process
    Defining RESTful Routes(CRUD operations)
  • 原文地址:https://www.cnblogs.com/liuzhi20101016/p/5239453.html
Copyright © 2011-2022 走看看