• GCD队列 调度任务


    1.队列的2大类型

    1> 并发队列:可以同时执行多个任务   * 获取并发队列   并发队列都是全局的:dispatch_get_global_queue(0, 0),不需要管理内存

    2> 串行队列:同一时间内,只能执行一个任务   * 获取串行队列    

    (1) 跟主线程相关联的队列 dispatch_get_main_queue(),不需要管理内存    

    (2) 手动创建队列,dispatch_queue_create("cn.com.queue", NULL),手动管理内存 dispatch_release(queue)

    2.队列中任务的执行顺序:先进先出

    3.开启任务

    1> 开启同步任务 dispatch_sync(queue, ^{

    });

    2> 开启异步任务 dispatch_async(queue, ^{

    });

    4.迭代 dispatch_apply(10, queue, ^(size_t i) {

    });

    5.总结:

    1> 队列的类型只决定任务是并发还是串行执行,不影响同步还是异步

    2> 函数名称决定同步还是异步,dispatch_async代表异步,dispatch_sync代表同步

    #pragma mark 异步串行

    - (void)asyncChuanxing {    

    // 队列的类型只决定并发还是串行执行任务,并不影响同步还是异步    

    // 同步异步取决于函数名        

    // 手动创建一个串行队列    

    dispatch_queue_t queue = dispatch_queue_create("cn.com.queue", NULL);        

    dispatch_async(queue, ^{        

        NSLog(@"执行了一个异步任务-%@", [NSThread currentThread]);    

    });        

    dispatch_async(queue, ^{        

      NSLog(@"执行了一个异步任务-%@", [NSThread currentThread]);    

    });        

    dispatch_async(queue, ^{        

      NSLog(@"执行了一个异步任务-%@", [NSThread currentThread]);    

    });        

    // 释放队列    

      dispatch_release(queue);

    }

    #pragma mark 异步并发

    - (void)asyncBingfa {    

    // 异步执行一个任务    

    // GCD默认提供了3个全局队列,都是并行队列        

    // 获取一个全局队列    

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);        

    dispatch_async(queue, ^{        

       NSLog(@"执行了一个异步任务-%@", [NSThread currentThread]);    

    });        

    dispatch_async(queue, ^{        

      NSLog(@"执行了一个异步任务-%@", [NSThread currentThread]);    

    });        

    dispatch_async(queue, ^{        

       NSLog(@"执行了一个异步任务-%@", [NSThread currentThread]);    

     });

    }

  • 相关阅读:
    LoadRunner支持的IE版本
    构建10亿级PV的大型网站设计要点 网络层
    珠海金山软件急聘性能测试工程师【内部推荐】
    PrefTest性能测试解决方案 C/S结构应用系统的压力测试
    Android性能测试主要方法
    使用LoadRunner监控Apach服务器的步骤
    MySQL+HandlerSocket
    Android configChanges属性
    创业故事:腾讯的创始人们
    [置顶] 学习linux的几点忠告
  • 原文地址:https://www.cnblogs.com/wangshengl9263/p/3066429.html
Copyright © 2020-2023  润新知