美文网首页
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 异步线程(冰山一角,记录一下项目中优化使用到的方法)

    队列组(亲测,可以的)队列组可以将很多队列添加到一个组里,这样做的好处是,当这个组里所有的任务都执行完了,队列组会...

  • SpringBoot项目中@Async、@EnableAsync

    1、简述 这几天在优化项目的时候,需要用到异步线程,先来说一下什么是同步和异步。 (1)同步:在项目运行的...

  • iOS多线程笔记

    由于最近重新学习iOS多线程(GCD部分),对于多线程又有了一些新的理解,所以写下这篇文章作为记录。 1.异步方法...

  • iOS性能优化总结

    总结一下平时优化app性能用到的方法 1.合理的分配线程,不要滥用多线程。开辟线程,以及线程之间的上下文切换是消耗...

  • iOS 多线程基础

    转自:iOS 多线程基础 - 简书 多线程同步和异步的区别?IOS中如何实现多线程的同步? 异步:可以同时执行多条...

  • 「JavaScript学习」异步编程的方法

    JavaScript因为是单线程的,为了不阻塞线程,只能通过异步调用的形式,今天学习了几种异步编程的方法,特此记录...

  • SSZipArchive解压的基本使用

    解压是异步的:为什么要异步,ios游戏类项目中,如果解压在ui主线程,会占用进程,效果是导致app卡在启动图界面,...

  • 整理一下知识点

    iOS多线程的使用 iOS核心优化

  • iOS-14 线程基础

    参考 ios的线程和同步异步操作 - 简书线程 同步异步 Timer 等使用 本文主要从 1、 ios三种创建方式...

  • 同步与异步 & 阻塞与非阻塞

    上篇说了线程,进程,cpu,内存,硬盘之间的关系,这篇说下异步和线程 异步 因为异步操作无须额外的线程负担,并且使...

网友评论

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

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