zoukankan      html  css  js  c++  java
  • GCD基本使用

    GCD--Grand Central Dispatch

    纯C,提供非常多强大的函数

    GCD优势:
    1.是苹果公司为多核的并行运算提出的解决方案
    2.自动利用更多的CPU内核(如双核)
    3.自动管理线程的生命周期(创建、调度、销毁)
    4.只需告诉GCD需要执行的任务,不需编写线程管理代码


    任务和队列
    任务:
    执行什么操作
    队列:
    用来存放任务

    GCD使用步骤:
    1.定制任务
    2.将任务添加到队列
    GCD自动将队列中任务取出,放到对于线程中执行
    任务的取出遵循队列FIFO原则

    GCD有2个执行任务的函数
    1.同步方式:只在当前线程中执行任务,不具有开启新线程的能力
    dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);

    2.异步方式:在新线程中执行任务,具有开启新线程的能力
    dispatch_async(dispatch_queue_t queue,dispatch_block_t block);

    GCD队列2大类型
    1.并发队列(Concurrent Dispatch Queue)
    自动开启多个线程同时执行任务
    并发功能只在异步(dispatch_async)函数下有效

    2.串行队列(Serial Dispatch Queue)
    一个任务执行后再执行下一个任务

    GCD默认提供全局并发队列
    dispatch_get_global_queue
    // 获得全局的并发队列
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    // 将 任务 添加 全局队列 中去 异步 执行
    dispatch_async(queue, ^{
    NSLog(@"-----下载图片---%@", [NSThread currentThread]);
    });

  • 相关阅读:
    xpath获取a标签下文本
    Python学习笔记Day26
    DNS原理
    命令实战解析
    linux系统ext文件系统知识
    磁盘分区重点知识
    机械磁盘读写磁盘数据的原理
    linux用户管理
    linux命令讲解
    linux系统定时任务
  • 原文地址:https://www.cnblogs.com/fangchun/p/4685937.html
Copyright © 2011-2022 走看看