美文网首页
iOS 多个网络请求并行/并发处理

iOS 多个网络请求并行/并发处理

作者: 冷煖自知 | 来源:发表于2018-06-08 11:51 被阅读19次
  • 同时存在A,B,C,D四个网络请求,要求同时发起四个网络请求,当四个网络请求都返回数据以后再处理事件E。
/创建信号量/
            dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
            /创建全局并行/
            dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
            dispatch_group_t group = dispatch_group_create();
            dispatch_group_async(group, queue, ^{
                NSLog(@"处理事件A");
                for (int i = 0; i<10000; i++) {
                    NSLog(@"打印i %d",i);
                }
                dispatch_semaphore_signal(semaphore);
            });
            dispatch_group_async(group, queue, ^{
                NSLog(@"处理事件B");
                for (int i = 0; i<10000; i++) {
                    NSLog(@"打印j %d",i);
                }
                dispatch_semaphore_signal(semaphore);
            });
            dispatch_group_async(group, queue, ^{
                NSLog(@"处理事件C");
                for (int i = 0; i<10000; i++) {
                    NSLog(@"打印k %d",i);
                }
                dispatch_semaphore_signal(semaphore);
            });
            dispatch_group_async(group, queue, ^{
                NSLog(@"处理事件D");
                for (int i = 0; i<10000; i++) {
                    NSLog(@"打印l %d",i);
                }
                dispatch_semaphore_signal(semaphore);
            });

            dispatch_group_notify(group, queue, ^{
                     /四个请求对应四次信号等待/
                    dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
                    dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
                    dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
                    dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
                    NSLog(@"处理事件E");
            });

相关文章

  • iOS 多个网络请求并行/并发处理

    同时存在A,B,C,D四个网络请求,要求同时发起四个网络请求,当四个网络请求都返回数据以后再处理事件E。

  • 初识并发编程

    1. 并发与并行: 1) 并发: 一段时间内能同时处理多个请求 2) 并行: 多个CPU同时去执行 2. 什么...

  • 进程线程,并发并行区别

    并发和并行的区别: 先解释一下并发和并行:并发:cpu具有处理多个任务的能力并行:cpu具有同时处理多个任务的能力...

  • java面试题(三)

    Java 多线程模块 1、并行和并发有什么区别? 并行:多个处理器或多核处理器同时处理多个任务。 并发:多个任务在...

  • 2021-01-31 今日主题 并发

    今日主题 并发 1.并行和并发有什么区别? 并行:多个处理器或多核处理器同时处理多个任务。并发:多个任务在同一个 ...

  • 多线程同步与互斥机制

    1、多线程并行和并发的区别 并行:多个处理器或者多核处理器同时执行多个不同的任务。 并发:一个处理器处理多个任务。...

  • 并发和并行的区别

    并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而...

  • iOS开发系列--并行开发(处理多个网络请求并发的情况)

    转载:http://m.blog.csdn.net/article/details?id=49148821&fro...

  • iOS多个网络请求并发

    笔者前不久终于发布了自己的APP《印记(官方版)》,希望读者能前往App Store下载《印记(官方版)》支持一下...

  • Java面试题(二):多线程

    多线程 35. 并行和并发有什么区别? 并行:多个处理器或多核处理器同时处理多个任务。 并发:多个任务在同一个 C...

网友评论

      本文标题:iOS 多个网络请求并行/并发处理

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