zoukankan      html  css  js  c++  java
  • 多线程实现方案之GCD

    <!doctype html>

    多线程实现方案之GCD

    多线程实现方案之GCD

    • GCD是底层是一种C语言,主要是替代NSthread等线程技术

    • GCD是苹果公司为多核的并行运算提出的解决方案

    • GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程

    • 程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码

    • 执行的步骤

    • 将(任务)添加到队列中,GCD会自动将队列中的任务取出,放到对应的线程中执行

    • 任务的取出遵循队列的FIFO原则:先进先出,后进后出

    执行任务

    • GCD中有2个用来执行任务的常用函数

    - 同步 只决定只在当前的线程中执行任务

    dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);
    

    - 异步 可以具备开线程的能力

    dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
    

    队列的类型

    • 并发队列 只决定执行任务是同时进行的,没有循序
    • 系统内部自带了一个并发的全区队列,不需要手动创建
    • 全局队列

    • 注意:并发队列之后在异步函数中才有效

    • 串行队列 知识决定 将队列中的任务取出后,放在线程中,是有序的执行的

    • 系统内部自带了一个朱队列
    • 添加进主队列的任务都是在主线程中执行的

    • 异步函数 + 串行队列 会创建一个子线程 ,并且执行这些任务是有序的

    • 异步函数 + 并发队列 创建的线程个数由系统决定,执行队列中的这些人物是无序的
  • 相关阅读:
    如何将你的AIR程序正常显示在iPhone5上?
    升级Flash Builder 4.7中的AIR SDK
    Flex AIR加载时全屏显示
    在Mac系统的安装Flash Builder 4.7开发工具
    What's XPath?
    XPath节点
    What's XML?
    65个源码下载网站
    [导入]轻松掌握Ajax.net系列教程
    MemberShip 示例
  • 原文地址:https://www.cnblogs.com/mshong1616/p/5074709.html
Copyright © 2011-2022 走看看