GCD 中 Group的使用

GCD 中的group 使用

在最近的业务场景中,考虑到性能的优化,以及建减少服务器的压力,使用到从并行到串行业务的流程。
假设 场景服务中 要对对象A 的属性 成员B 的图片进行上传后,再处理图片路径 然后再提交A的相关数据。我处理的场景方案就是group

使用方式 :

dispatch_group_t group = dispatch_group_create();
dispatch_queue_t mainQueue = dispatch_get_main_queue();

             dispatch_group_enter(group);

   dispatch_async(mainQueue, ^{
              dispatch_group_leave(group);

    
      });
      


// 组中的队列全部执行完毕后就通知调度组
dispatch_group_notify(g, dispatch_get_main_queue(), ^{
  NSLog(@"MainTask: %@", [NSThread currentThread]);
});


  //等待组中的任务都执行完毕,才会执行
  dispatch_group_notify(group, dispatch_get_main_queue(), ^{
//此处执行 完成组内任务后的内容
  });
  
  //等待组中的任务都执行完毕,才会继续执行后续的代码
  dispatch_group_wait(group, DISPATCH_TIME_FOREVER);

以上是我删除掉了业务代码所写的组内执行任务结束后 回归串行的方法。
有需求可参考使用

你可能感兴趣的:(GCD 中 Group的使用)