zoukankan      html  css  js  c++  java
  • 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]);    

     });

    }

  • 相关阅读:
    hdu 2647 Reward
    hdu 2094 产生冠军
    hdu 3342 Legal or Not
    hdu 1285 确定比赛名次
    hdu 3006 The Number of set
    hdu 1429 胜利大逃亡(续)
    UVA 146 ID Codes
    UVA 131 The Psychic Poker Player
    洛谷 P2491消防 解题报告
    洛谷 P2587 [ZJOI2008]泡泡堂 解题报告
  • 原文地址:https://www.cnblogs.com/wangshengl9263/p/3066429.html
Copyright © 2011-2022 走看看