一、队列的创建和获取方式
GCD 的使用步骤
- GCD 的使用步骤其实很简单,只有两步。
- 创建一个队列(串行队列或并发队列)
- 将任务追加到任务的等待队列中,然后系统就会根据任务类型执行任务(同步执行或异步执行)
创建队列
- 此函数需要两个入参,以下是参数说明:
- 参数一表示队列的唯一标识符,用于 DEBUG,可为空,Dispatch Queue 的名称推荐使用应用程序 ID 这种逆序全程域名;
- 参数二用来识别是串行队列还是并发队列。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);
- 对于串行队列,GCD 提供了的一种特殊的串行队列:主队列(Main Dispatch Queue)。
- 所有放在主队列中的任务,都会放到主线程中执行。
- 可使用dispatch_get_main_queue()获得主队列。
dispatch_queue_tqueue = dispatch_get_main_queue();
- 对于并发队列,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);