美文网首页
swift 网络请求调度组

swift 网络请求调度组

作者: 贝灬小晖 | 来源:发表于2019-02-28 16:13 被阅读7次

/// 网络请求调度组
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 的数据请求都已经完毕!, 开始合并两个接口的数据")
    }
}

1.如果调度组 group 中没有任务,会直接执行 dispatch_group_notify 方法
2.入组 dispatch_group_enter 、 出组 dispatch_group_leave 必须成对出现
3.当入组多于出组,dispatch_group_notify 方法永远不会执行
4.当出组多于入组,会崩溃

相关文章

网友评论

      本文标题:swift 网络请求调度组

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