网上各种关于GCD队列的文章中都说队列分为串行和并行队列,串行队列有主队列和通过dispatch_queue_create(const char *label, NULL)创建的队列,并行队列有dispatch_get_global_queue()获取的四个优先级的队列,没有人提过并行队列能否自己创建。后来试了下dispatch_queue_create()中的第二个参数,发现可以创建并行队列。然后看了下官方文档,找到官方说明:
自OS X10.7和iOS 4.3以后,dispatch_queue_create (const char *label, dispatch_queue_attr_t attr)方法中的第二个参数可以传入DISPATCH_QUEUE_SERIAL和DISPATCH_QUEUE_CONCURRENT分别来创建串行队列和并发队列。
dispatch_queue_t myQueue = dispatch_queue_create("myQueue", DISPATCH_QUEUE_CONCURRENT);
这样创建出的队列中的任务确实是在好几个线程中并发执行的。