美文网首页
GCD学习(二)

GCD学习(二)

作者: FredYJH | 来源:发表于2016-07-25 14:15 被阅读34次

GCD学习一 

GCD学习二

GCD学习三 


一。队列有哪几种呢?

1.1、自定义的队列 :dispatch_queue_create

1.2、系统自带的队列:

    1.2.1、主队列 Main Dispatch Queue

    1.2.2、全局队列 Global Dispatch Queue (3个优先级+I/O)

注意:在自定义队列中被调度的所有 block 最终都将被放入到系统的全局队列中和线程池中。


1.1、自定义队列

dispatch_queue_t mySerialDispatchQueue = dispatch_queue_create("com.example.gcd.MySerialDispatchQueue",NULL);

第一个参数是队列的名称,要易懂

第二个参数:NULL表示串行队列,DISPATCH_QUEUE_CONCURRENT表示并行队列

注意:同步队列可生成任意多个,并放到异步线程执行的时候,如果个数太多,会出现内存大量消耗,影响性能。要控制队列个数。如图:

那什么时候该使用同步线程呢?当出现并发队列竞争同一个资源的时候,我们可以用同步线程去控制。

1.2、系统自带的队列

1、Main Dispatch Queue:

dispatch_queue_t mainDispatchQueue = dispatch_get_main_queue();

dispatch_async((mainDispatchQueue,^{//主线程处理}));

该方法的处理与NSObject类的performSelectorOnMainThread实例方法一样。

2、Global Dispatch Queue

dispatch_queue_t globalDispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);

第一个参数有四种:都是并行队列

DISPATCH_QUEUE_PRIORITY_DEFAULT 默认等级

DISPATCH_QUEUE_PRIORITY_HIGH 最高等级

DISPATCH_QUEUE_PRIORITY_LOW 最低等级

DISPATCH_QUEUE_PRIORITY_BACKGROUND 后台运行,更低等级

第二个参数:一般是0

一般代码执行:

dispatch_async((dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{

    //可并行执行处理代码

    // 在main dispatch queue中执行block

    dispatch_async(dispatch_get_main_queue(),^{

    // 只能在主线程中执行处理

    });

}));

相关文章

  • GCD学习(三)

    GCD学习一 GCD学习二 GCD学习三 常用函数: dispatch_set_target_queue disp...

  • GCD学习(二)

    GCD学习一 GCD学习二 GCD学习三 一。队列有哪几种呢? 1.1、自定义的队列 :dispatch_queu...

  • GCD学习(一)

    GCD学习一 GCD学习二 GCD学习三 我不会讲太多理论,这篇是我自己的理解。 举个例子: 汽车进入维修厂的关...

  • GCD相关知识点

    GCD相关知识点 多线程技术--GCD 深入学习GCD GCD 深入理解:第一部分 GCD 深入理解:第二部分 1...

  • 学习GCD看我就够了

    学习GCD看我就够了 学习GCD看我就够了

  • 十一、ios线程调用学习

    常用线程方式:GCD 一、GCD学习 Grand Central Dispatch(GCD) 是 Apple 开发...

  • iOS实录16:GCD使用小结(二)

    iOS实录16:GCD使用小结(二) iOS实录16:GCD使用小结(二)

  • iOS开发多线程篇--GCD

    目录: 一 GCD简介 二 GCD中的队列 三 注意点 一 GCD简介 1 什么是GCD? 全称是Grand Ce...

  • iOS GCD学习总结(二)

    1.GCD 线程间的通信 在 iOS 开发过程中,当我们有时候在其他线程完成了耗时操作时,需要回到主线程,那么就用...

  • iOS多线程之GCD详解

    原文链接:整理多线程:GCD详解,如有侵权立即删除 一、GCD简介 为什么要用GCD呢? 二、GCD任务和队列 2...

网友评论

      本文标题:GCD学习(二)

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