GCD

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();//主队列是特殊的串行队列
  • 各种队列的执行效果


    GCD_第1张图片
    WX20170607-102014.png

你可能感兴趣的:(GCD)