GCD

作者: Mr_李子 | 来源:发表于2017-06-07 10:21 被阅读0次

    GCD

    • 核心概念
    • 任务:执行什么操作
    • 队列:用来存放任务
    • 步骤
    • 定制任务:确定要做的事
    • 将任务添加到队列中:GCD会自动将队列中的任务取出,放到线程中执行,取出原则遵循 FIFO
    • 函数
    • 执行任务的函数(两个)
    • 同步方式执行任务(只能在当前线程中执行任务,不具备开启新线程的能力)
    dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);
    //queue:队列
    //block:任务
    
    • 异步方式执行任务(可以在新的线程中执行任务,具备开启新线程的能力)
    dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
    //queue:队列
    //block:任务
    
    • 队列的类型
    • 并发队列 Concurrent Dispatch Queue(只有在异步函数dispatch_async下才有效)
    • 创建并发队列:默认已经提供了全局的并发队列,不需自己创建
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    //DISPATCH_QUEUE_PRIORITY_DEFAULT 为设置优先级,后面的 0 暂时没有意义
    
    • 串行队列 Serial Dispatch Queue
    dispatch_queue_t queue = dispatch_queue_create("com.520it.queue", DISPATCH_QUEUE_SERIAL);
    

    dispatch_queue_t queue = dispatch_get_main_queue();//主队列是特殊的串行队列
    
    • 各种队列的执行效果


      WX20170607-102014.png

    相关文章

      网友评论

          本文标题:GCD

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