GCD基础学习

一、队列的创建和获取方式

GCD 的使用步骤

  1. GCD 的使用步骤其实很简单,只有两步。
  2. 创建一个队列(串行队列或并发队列)
  3. 将任务追加到任务的等待队列中,然后系统就会根据任务类型执行任务(同步执行或异步执行)

创建队列

  • 函数dispatch_queue_create

  1. 此函数需要两个入参,以下是参数说明:
  2. 参数一表示队列的唯一标识符,用于 DEBUG,可为空,Dispatch Queue 的名称推荐使用应用程序 ID 这种逆序全程域名;
  3. 参数二用来识别是串行队列还是并发队列。DISPATCH_QUEUE_SERIAL 表示串行队列,DISPATCH_QUEUE_CONCURRENT 表示并发队列。
  • 创建串行队列

dispatch_queue_tqueue = dispatch_queue_create("net.bujige.testQueue", > DISPATCH_QUEUE_SERIAL);
  • 创建并发队列

dispatch_queue_tqueue = dispatch_queue_create("net.bujige.testQueue", > DISPATCH_QUEUE_CONCURRENT);
  • 主队列

  1. 对于串行队列,GCD 提供了的一种特殊的串行队列:主队列(Main Dispatch Queue)。
  2. 所有放在主队列中的任务,都会放到主线程中执行。
  3. 可使用dispatch_get_main_queue()获得主队列。
    dispatch_queue_tqueue = dispatch_get_main_queue();
  4. 对于并发队列,GCD 默认提供了全局并发队列(Global Dispatch Queue)。
  • 可以使用dispatch_get_global_queue来获取。需要传入两个参数。第一个参数表示队列优先级,一般用DISPATCH_QUEUE_PRIORITY_DEFAULT。第二个参数暂时没用,用0即可。
spatch_queue_tqueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。