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


    WX20170607-102014.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容