GCD

原创 2015年11月18日 20:26:46

GCD

只有两种队列:一种是串行(一种),一种是并发队列(四种)

  • Serial 串行队列,先创建dispatch_queue_creat(const char *label,dispatch_queue_attr_t attr))(系统默认的主队列)

  • Concurrent 并发队列 dispatch_queue_t dispatch_get_global_queue( long priority,unsigned long flags);
    第一个参数:用于指定优先级
    第二个参数:目前未使用并且应该始终为0

 #define    DISPATCH_QUEUE_PRIORITY_HIGH

 #define    DISPATCH_QUEUE_PRIORITY_DEFAULT

 #define    DIPATCH_QUEUE_PRIORITY_LOW

 #define    DISPATCH_QUEUE_PRIORITY_BACKGROUND

主队列:Main dispatch queue

dispatch_queue_t dispatch_get_main_queue(void)

常用方法

  • 异步派发
    void dispatch_async(dispatch_queue_t queue,dispatch_block_t block);

  • 同步派发
    void diospatch_sync (dispatch_queue_t queue,dispatch_block_t block);


一个很重要的方法
dispatch_async(sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT)^{ //耗时的操作
dispatch_async(dispatch_get_main_queue(),^{
//更新界面
});
});

障碍只用于自定义的并发队列
只有并发序列才可以用dispatch_barrier_sync,屏障的作用就是只有其前面的任务全部执行完毕后,才会执行它本身和以后的任务

单例

static dispatch_once 很有用 ,使用单例,必须用dispatch_once来声明(保证一个单例的地址不管在哪个线程中使用都是一致的),静态声明比全局声明更方便,

如果某些任务需要另一些任务完成后才执行,可以使用dispatch_group_t

NSTimer、CADisplayLink、GCD 三种定时器的用法

在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法。在这个时候,我们就需要用到定时器。 在iOS中有很多方法完成定时器的任务,例如 NSTimer、CAD...
  • shan1991fei
  • shan1991fei
  • 2016年03月25日 09:33
  • 711

多线程、特别是NSOperation 和 GCD 的内部原理

多线程、特别是NSOperation 和 GCD 的内部原理 简介 多线程是一个比较轻量级的方法来实现单个应用程序内多个代码执行路径。 在系统级别内,程序并排执行,程序分配到每个程序的执行时间是...
  • Charles91
  • Charles91
  • 2016年01月19日 15:44
  • 5791

iOS- NSThread/NSOperation/GCD 三种多线程技术的对比及实现

转自出处:http://www.cnblogs.com/qingche/p/3496190.html
  • martin_liang
  • martin_liang
  • 2014年11月02日 18:19
  • 7372

GCD高级用法-信号量

GCD中的信号量是指 Dispatch Semaphore。 所谓信号,类似于道路上的信号灯,一种用来标识等待还是通过的标志。绿灯通过,红灯等待。道路中通过信号灯的颜色标识通过和等待,而Dispat...
  • u014205965
  • u014205965
  • 2015年05月22日 11:25
  • 2302

GCD常用函数说明

提交队列函数(即执行): dispatch_async(dispatch_queue_t queue, ^(void)block):异步执行队列 dispatch_sync(dispatch_que...
  • hcy_12345
  • hcy_12345
  • 2015年07月25日 18:26
  • 955

IOS GCD的介绍及使用举例&GCD优先级改变、after、group、barrier、sync、apply、semaphore、once等操作方法

GCD编程 目录 一、
  • u011711753
  • u011711753
  • 2014年04月18日 16:50
  • 2855

扩展GCD算法学习笔记

首先对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。求解 x,y的方法...
  • xieguofu2014
  • xieguofu2014
  • 2015年10月28日 20:37
  • 941

GCD算法(最大公约数算法)解析

GCD(Great Common Divisor)算法,即所谓最大公约数算法,也称为HCF(Highest Common Factor)算法。而所谓的最大公约数,指的是几个整数中共有约数中最大的一个。...
  • Linoi
  • Linoi
  • 2014年02月13日 18:00
  • 2513

HDU5381【莫队算法+区间GCD特性】

NO RESPONSE!
  • KEYboarderQQ
  • KEYboarderQQ
  • 2017年02月18日 22:36
  • 395

最大公约数和快速gcd

最大公约数有两种基本的求法:(1)辗转相除法(2)更相减损法,首先来证明一下:(1)证明gcd(a,b)=gcd(b,a(1)证明gcd(a,b) = gcd(b,a%b)假设a=k1m,b=k2m,...
  • pp634077956
  • pp634077956
  • 2016年11月01日 15:40
  • 2119
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GCD
举报原因:
原因补充:

(最多只允许输入30个字)