美文网首页
GCD常用函数

GCD常用函数

作者: 红茶绅士 | 来源:发表于2017-04-07 14:52 被阅读38次
  • 延迟执行
/*
第一个参数:DISPATCH_TIME_NOW 从现在开始计算时间
第二个参数:延迟的时间 2.0 * GCD时间单位:纳秒
第三个参数:队列
*/
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        
    });
  • 一次性代码
    //不能使用到懒加载
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        
    });
  • 栅栏函数
//栅栏函数不能使用全局并发队列
dispatch_barrier_async(dispatch_queue_create("download", DISPATCH_QUEUE_PRIORITY_DEFAULT), ^{
        
    });
  • 快速迭代
/*
第一个参数:遍历的次数
第二个参数:队列(并发队列)
第三个参数:索引
*/
dispatch_apply(10, dispatch_get_global_queue(0, 0), ^(size_t index) {
        
    });
  • 队列组
    //1.创建队列
    dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
    
    //2.创建队列组
    dispatch_group_t group = dispatch_group_create();
    
    //3.异步函数
    dispatch_group_async(group, queue, ^{
        
    });
    dispatch_group_async(group, queue, ^{
        
    });
    
    //拦截通知,当队列组中所有的任务都执行完毕的时候会进入到下面的方法
    //本身是异步的
    dispatch_group_notify(group, queue, ^{
        
    });
    
    //等待,死等.直到队列组中所有的任务都执行完毕之后才能执行
    //本身是阻塞的
    dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
  • 定时器
//1.创建GCD中的定时器
/*
第一个参数:DISPATCH_SOURCE_TYPE_TIMER 表示是定时器
第二个参数:描述信息,线程ID
第三个参数:更详细的描述信息
第四个参数:队列,决定GCD定时器中的任务在哪个线程中执行
*/
    dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0));
//2.设置定时器(起始时间|间隔时间|精准度)
/*
第一个参数:定时器对象
第二个参数:起始时间
第三个参数:间隔时间
第四个参数:精准度 绝对精准0
*/
    dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 2.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
//3.设置定时器执行的任务
    dispatch_source_set_event_handler(timer, ^{
        
    });
//4.启动任务
    dispatch_resume(timer);

相关文章

  • iOS-GCD常用函数和栅栏函数

    GCD常用函数 GCD栅栏函数

  • GCD学习(三)

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

  • GCD的基本使用(二)

    一.线程间通信 二.GCD常用函数 还需补充.

  • GCD常用函数

    栅栏函数 1.栅栏函数可以用来控制任务的执行顺序 dispatch_barrier_async(dispatch_...

  • GCD常用函数

    延迟执行 一次性代码 栅栏函数 快速迭代 队列组 定时器

  • GCD常用函数

    1 一次性代码 :1)在整个程序运行过程中只会执行一次 2)线程安全 2 延迟函数的使用:延长多时间去执行任务 3...

  • GCD常用函数

    栅栏函数 延迟函数 一次代码 快速迭代

  • GCD之semaphore函数

    GCD中, 有一些函数很常用, 比如同步函数, 异步函数, 障碍函数, 一次性函数等; 另外一些不太常用, 如迭代...

  • 底层20:多线程-同步/异步/并发/串行

    GCD两种常用的函数: GCD中有2个用来执行任务的函数 用同步的方式执行任务:dispatch_sync(dis...

  • GCD的基本使用(二)

    一. 函数执行任务 GCD中有2个用来执行任务的常用函数用同步的方式执行任务 GCD中还有个用来执行任务的栅栏函数...

网友评论

      本文标题:GCD常用函数

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