美文网首页
Swift 3.0 —GCD

Swift 3.0 —GCD

作者: BeginnerMind | 来源:发表于2017-07-27 15:44 被阅读10次

常用场景:使用global queue完成操作后切换到main queue更新UI

DispatchQueue.global().async {
    //code
    DispatchQueue.main.async {
        //update ui
    }
}

使用Custom Queue

let serialQueue = DispatchQueue(label: "com.serialQueue.dispatch")
let concurrentQueue = DispatchQueue(label: "com.concurrentQueue.dispatch", qos: .background, attributes:.concurrent)

延迟调用

let delay = DispatchTime.now() + DispatchTimeInterval.seconds(3)
DispatchQueue.main.asyncAfter(deadline: delay) { 
    print("delay 3 seconds")
}

使用Group管理多个Queue,可以使用notify等到结束通知,使用wait等待group中所有操作执行完毕

let group = DispatchGroup()

let bookQueue = DispatchQueue(label: "com.group.book")
bookQueue.async(group: group) { 
    //down load books
}

let videoQueue = DispatchQueue(label: "com.group.video")
videoQueue.async(group: group) { 
    //down load videos
}
group.notify(queue: DispatchQueue.main) { 
    //download finished
}
group.wait()

DispatchWorkItem代替了原先的dispatch_block_t

let workItem = DispatchWorkItem { 
    //work item
}

DispatchQueue.global().async(execute: workItem)

GCD Timer

let myQueueTimer = DispatchQueue(label: "myQueueTimer", attributes: .concurrent)

let myTimer = DispatchSource.makeTimerSource(queue: myQueueTimer)

myTimer.scheduleRepeating(wallDeadline: DispatchWallTime.now(), interval: .seconds(1))
myTimer.setEventHandler {
    //TODO
}
myTimer.resume()

总结:

Swift 3.0中,GCD更加面向对象化,增强了可读性和易用性

相关文章

  • swift中GCD的使用详情

    想看swift3.0使用GCD,请点击GCD详解 想看swift3.0闭包的使用和介绍,请点击Swift版闭包使用...

  • Swift 3.0 中GCD的使用

    Swift 3.0 中GCD的使用

  • Swift 3.0 GCD的常用方法

    Swift 3.0 GCD常用的方法 导语: 随着最近苹果推出Swift 3.0 觉得不能把Swift丢下了,就赶...

  • 多线程

    参考文章:iOS多线程--彻底学会多线程之『GCD』Swift 3.0 GCD和DispatchQueue 使用解...

  • iOS多线程-GCD(Swift)

    GCD准确的来讲应该叫做并发编程技术,因为swift3.0后GCD使用方式有很大的变化这里用Swift来重新整理一...

  • GCD学习总结

    GCD概述: OC: 相关练习: Swift 3.0: 相关练习: 参考资料:http://www.jianshu...

  • Swift 3.0 —GCD

    常用场景:使用global queue完成操作后切换到main queue更新UI 使用Custom Queue ...

  • Swift 各版本特性

    我们从3.0开始,之前的不考虑啦。 一、swift 3.0 1.新的GCD和Core Graphics:不同于之前...

  • swift3.0 GCD

    随着苹果推出swift3.0,很多API都发生了变化,下面我就来总结下GCD的一些常用API用法。 首先为了方便先...

  • Swift3.0--GCD

    估计现在好多人在为这一块头疼,所以先来点干货。 dispatch_block_t在swift3.0已经没了 di...

网友评论

      本文标题:Swift 3.0 —GCD

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