美文网首页Swift
oc和swift的DispatchGroupNotify

oc和swift的DispatchGroupNotify

作者: SeanLink | 来源:发表于2021-10-28 17:36 被阅读0次

话不多说,直接上代码吧

OC版本

- (void)requestDatasGroup {
    // 创建调度组
    dispatch_group_t group = dispatch_group_create();
    // 创建队列
    dispatch_queue_t queue = dispatch_get_global_queue(0, 0);

    // 模拟异步发送网络请求 A
    // 入组
    dispatch_group_enter(group);
    dispatch_async(queue, ^{
        [NSThread sleepForTimeInterval:1.0];
        NSLog(@"接口 A 数据请求完成");
        // 出组
        dispatch_group_leave(group);
    });
    
    // 模拟异步发送网络请求 B
    // 入组
    dispatch_group_enter(group);
    dispatch_async(queue, ^{
        [NSThread sleepForTimeInterval:1.0];
        NSLog(@"接口 B 数据请求完成");
        // 出组
        dispatch_group_leave(group);
    });
    
    NSLog(@"我是最开始执行的,异步操作里的打印是后执行的");
    
    // 调度组的任务都执行完毕
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        NSLog(@"接口 A 和接口 B 的数据请求都已经完毕!, 开始合并两个接口的数据");
    });
}

swift版本

  /// 网络请求调度组
    private func datasRequestGroup() {
        // 创建调度组
        let workingGroup = DispatchGroup()
        // 创建多列
        let workingQueue = DispatchQueue(label: "request_queue")
        
        // 模拟异步发送网络请求 A
        // 入组
        workingGroup.enter()
        workingQueue.async {
            Thread.sleep(forTimeInterval: 1)
            print("接口 A 数据请求完成")
            // 出组
            workingGroup.leave()
        }
        
        // 模拟异步发送网络请求 B
        // 入组
        workingGroup.enter()
        workingQueue.async {
            Thread.sleep(forTimeInterval: 1)
            print("接口 B 数据请求完成")
            // 出组
            workingGroup.leave()
        }
        
        print("我是最开始执行的,异步操作里的打印后执行")
        
        // 调度组里的任务都执行完毕
        workingGroup.notify(queue: workingQueue) {
            print("接口 A 和接口 B 的数据请求都已经完毕!, 开始合并两个接口的数据")
        }
    }

相关文章

  • oc和swift的DispatchGroupNotify

    话不多说,直接上代码吧 OC版本 swift版本

  • oc Swift 混编

    oc Swift 混编 oc 项目 混编Swift1.1 oc 调用 Swift 的类 和 方法步骤: ...

  • OC和Swift混编

    OC和Swift的混编,分为两种情况: OC项目中嵌入Swift文件 Swift项目中嵌入OC文件 先来看OC项目...

  • OC Swift文件混编

    一.Swift 类可以继承 OC 类,OC 类不能继承 Swift 类。 二.Swift 和 OC 混编 三.两个...

  • Swift和OC混合开发

    在swift项目上的Swift和OC混合开发 1、Swift调OC方法: (1)、直接新建OC项目会自动创建桥梁文...

  • Swift-1(Swift与OC比较)

    一、Swift和OC的联系 swift和OC共用一套运行时环境 swift项目中可以使用oc,利用桥接文件,反之亦...

  • 面试题

    Swift和OC的区别? 1.swift是静态语言,有类型推断,OC是动态语言。2.swift面向协议编程,OC面...

  • 在.framework 中,OC 和 Swift 互调

    OC 和 Swift 互调(.framework 中和普通项目中) Framework 实现 OC 与 Swift...

  • swift学习之旅--set和get的重写

    swift和OC很大的一个不同,就是swift并不能和OC一样,直接重写setter和getter,但swift提...

  • OC项目中使用Swift

    Swift和OC 混编的两个方面 1.OC项目中使用Swift2.Swift 项目中使用OC OC项目中使用Swi...

网友评论

    本文标题:oc和swift的DispatchGroupNotify

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