多线程
//异步函数+并发队列:会开启多条线程,队列中的任务是并发执行
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//异步函数+串行队列:会开线程,开一条线程,队列中的任务是串行执行的
dispatch_queue_t queue = dispatch_queue_create("download", DISPATCH_QUEUE_SERIAL);
//同步函数+并发队列:不会开线程,任务是串行执行的
dispatch_queue_t queue = dispatch_queue_create("liuzhenjie.download", DISPATCH_QUEUE_CONCURRENT);
//同步函数+串行队列:不会开线程,任务是串行执行的
//异步函数+主队列:所有任务都在主线程中执行,不会开线程
//同步函数+主队列:死锁-----注意:如果该方法在子线程中执行,那么所有的任务在主线程中执行,