美文网首页
GCD的基本使用

GCD的基本使用

作者: May_0524 | 来源:发表于2020-04-20 14:45 被阅读0次

GCD

多核编程、自动管理线程的生命周期(创建线程,调度任务,销毁线程)

一、GCD 的【任务】与【队列】

1.任务:在线程中执行的代码(block块),有2种任务类型。

【同步执行/sync】:

同步将任务添加到指定队列中,不能开启新线程,任务执行结束前一直等待。

【异步执行/async】:

异步将任务添加到指定队列中,能开启新线程,任务执行不等待。

2.队列:存放任务的队列,FIFO(先进先出)原则,GCD只有2种队列。

【串行队列/Serial Dispatch Queue】:

只开启一个线程,一个任务执行完再执行下一个。(新增子线程数 1)

【并发队列/Concurrent Dispatch Queue】:

开启多个线程,且同时执行任务,只在异步dispatch_async有效。(新增子线程数N)

二、GCD的使用

1.GCD使用步骤:

    1.1 创建队列。

    1.2将任务追加到任务的等待队列中,系统根据任务类型执行任务。

2.队列的创建和获取方式

    2.1队列创建:dispatch_queue_create(参数1,参数2);

        参数1:队列唯一标识符,可为空。(推荐使用应用程序ID逆序->com.beijing.testQueue)

        参数2:队列类型。(串行:DISPATCH_QUEUE_SERIAL 并发:DISPATCH_QUEUE_CONCURRENT)

例:

// 串行队列的创建方法:

dispatch_queue_t serialQueue =

dispatch_queue_create("com.beijing.testQueue", DISPATCH_QUEUE_SERIAL);

// 并发队列的创建方法:

dispatch_queue_t concurrentQueue = 

dispatch_queue_create("com.beijing.testQueue", DISPATCH_QUEUE_CONCURRENT);

    2.2 队列获取方法

        2.2.1【主队列/Main Dispatch Queue】

            dispatch_queue_t mainQueue = dispatch_get_main_queue();

        2.2.2【全局并发队列/Global Dispatch Queue】

            dispatch_queue_t globalQueue = dispatch_get_global_queue(参数1,参数2);

                参数1:队列优先级 (一般用DISPATCH_QUEUE_PRIORITY_DEFAULT)

                参数2:暂时没用,传0;

3.任务的创建方式

    3.1同步执行任务创建方法

dispatch_sync(queue, ^{

// 这里放同步执行任务代码

});

    3.2异步执行任务创建方法

dispatch_async(queue, ^{

// 这里放异步执行任务代码

});

相关文章

  • iOS-多线程:GCD

    GCD 简介 GCD 任务和队列 GCD 的使用步骤 GCD 的基本使用(6种不同组合区别) GCD 线程间的通信...

  • 浅析多线程GCD

    GCD的基本使用代码

  • 多线程和AFN网络框架配合使用

    ios的多线程一般有NSOperation和GCD.NSOperation基本使用: GCD基本使用: 简单的多线...

  • iOS多线程--彻底学会多线程之『GCD』

    GCD 文章目录 GCD简介 任务和队列 GCD的使用步骤 队列的创建方法 任务的创建方法 GCD的基本使用 并行...

  • 多线程之GCD

    GCD介绍 1、GCD简介 2、GCD任务和队列 3、GCD 的基本使用 4、GCD 线程间的通信 5、GCD 的...

  • iOS GCD

    GCD 简介 GCD 任务和队列 GCD 的使用步骤 GCD 的基本使用(六种组合不同区别,队列嵌套情况区别,相互...

  • iOS多线程--GCD篇

    GCD 文章目录GCD简介任务和队列GCD的使用步骤队列的创建方法任务的创建方法GCD的基本使用并行队列 + 同步...

  • GCD多线程详解

    1. GCD 简介 2. GCD 任务和队列 3. GCD 的使用步骤 4. GCD 的基本使用(6种不同组合区别...

  • 多线程网络

    第一节 1.基本概念 2.线程安全 3.线程间通信 4.GCD GCD基本使用【重点】 GCD的栅栏函数 在使用栅...

  • # GCD基本使用

    GCD基本使用 GCD是iOS开发中常用的一种线程使用方法,相比NSThread来说,代码更加的底层一点,用了Bl...

网友评论

      本文标题:GCD的基本使用

      本文链接:https://www.haomeiwen.com/subject/focdihtx.html