美文网首页
iOS 异步线程(冰山一角,记录一下项目中优化使用到的方法)

iOS 异步线程(冰山一角,记录一下项目中优化使用到的方法)

作者: coderJerry01 | 来源:发表于2017-04-24 11:24 被阅读35次

    队列组(亲测,可以的)
    队列组可以将很多队列添加到一个组里,这样做的好处是,当这个组里所有的任务都执行完了,队列组会通过一个方法通知我们。下面是使用方法,这是一个很实用的功能。

    //.创建队列组
    dispatch_group_t group = dispatch_group_create();
    //2.创建队列
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_group_async(group, queue, ^{
    });
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    NSLog(@"全部完成 - %@", [NSThread currentThread]);
    });

    另一种:
    //1.创建队列
    dispatch_queue_t uploadQueue = dispatch_queue_create("refreshDbQueue", NULL);
    dispatch_queue_t getMainQueue = dispatch_get_main_queue();
    dispatch_async(uploadQueue, ^{
    dispatch_async(getMainQueue, ^{
    });
    });

    使用:(第一种)
    (队列组可以将很多队列添加到一个组里,这样做的好处是,当这个组里所有的任务都执行完了,队列组会通过一个方法通知我们。下面是使用方法,这是一个很实用的功能)

    • (void)test{
      //1.创建队列组
      dispatch_group_t group = dispatch_group_create();
      //2.创建队列
      dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

      //3.多次使用队列组的方法执行任务, 只有异步方法
      //3.1.执行3次循环
      dispatch_group_async(group, queue, ^{
      for (NSInteger i = 0; i < 3; i++) {
      NSLog(@"group-01 - %@", [NSThread currentThread]);
      }
      });

      //3.2.主队列执行8次循环
      dispatch_group_async(group, dispatch_get_main_queue(), ^{
      for (NSInteger i = 0; i < 8; i++) {
      NSLog(@"group-02 - %@", [NSThread currentThread]);
      }
      });
      //3.3.执行5次循环
      dispatch_group_async(group, queue, ^{
      for (NSInteger i = 0; i < 5; i++) {
      NSLog(@"group-03 - %@", [NSThread currentThread]);
      }
      });
      //4.都完成后会自动通知
      dispatch_group_notify(group, dispatch_get_main_queue(), ^{
      NSLog(@"全部完成 - %@", [NSThread currentThread]);
      });
      }
      第二种的使用是很普遍的,随便一搜多了是,不再记录!

    转自: http://www.jianshu.com/p/0b0d9b1f1f19 希望看到更多的,请阅读原文。

    相关文章

      网友评论

          本文标题:iOS 异步线程(冰山一角,记录一下项目中优化使用到的方法)

          本文链接:https://www.haomeiwen.com/subject/kuouzttx.html