1、创建一个serial queue队列
dispatch_queue_t queue = dispatch_queue_create("com.hnqingyun.queue", NULL);
2、使用dispatch_sync(queue, ^{ 放入线程要执行的具体任务 }); 这个是同步。 异步只需要吧dispatch_sync改成dispatch_async
或者 1、创建并行队列 dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
// 2、异步调用 dispatch_async(concurrentQueue, ^{放入线程要执行的具体任务 });
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_queue_t queue = dispatch_queue_create(“com.hnqingyun.queue”, NULL);
区别: 第一个是并行队列 处理事件没有顺序。 第二个是串行队列 处理事件按照顺序进行、
dispatch_async(queue, ^{ });
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
区别: 第一个是添加一个异步处理 线程
第二个是添加一个并发(异步)处理的线程 放在同一个group组里 。 这个东西一般用于 当不知道两个(多个)方法执行多长时间, 但必须用到它们的结果的时候,用第二个方法进行并发处理多个事件 并且在处理完之后 必须执行这个方法 dispatch_group_notify(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ }) 当组group里的所有任务都结束的时候, 就会调用以下这个分发的block