注释:队列是用来存放任务的,线程是执行任务的,队列好比高速公路服务区,并发队列好比服务区的多条出口,线程相当于高速公路,服务区的多条出口之间互不影响,串行队列好比服务区只有一条出口,所有的车只能排着队上高速
5.2 并发队列的创建:
1.使用 dispatch_queue_create 函数创建并发队列。
dispatch_queue_t queue = dispatch_queue_create("concurrent.queue", DISPATCH_QUEUE_CONCURRENT);
2.使用 dispatch_get_global_queue 获得全局并发队列。
GCD默认已经提供了全局的并发队列,供整个应用使用,可以无需手动创建。
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
5.1 串行队列的创建:
GCD中获得串行有2种途径:
1.使用 dispatch_queue_create 函数创建串行队列
// 创建串行队列(队列类型传递NULL或者DISPATCH_QUEUE_SERIAL)
dispatch_queue_t queue = dispatch_queue_create("serial_queue", NULL);
2.使用主队列(跟主线程相关联的队列)
主队列是GCD自带的一种特殊的串行队列:放在主队列中的任务,都会放到主线程中执行。
可以使用dispatch_get_main_queue()获得系统提供的主队列:
dispatch_queue_t queue = dispatch_get_main_queue();
参考资料
完整详解GCD系列(一)dispatch_async;dispatch_sync;dispatch_async_f;dispatch_sync_f