【swift3.0】【GCD】

【swift3.0】【GCD】,第1张

概述贡献作者 -【XJDomain】 博客XJ:  https://my.oschina.net/shengbingli/blog GitHub直播地址:  https://github.com/lishengbing/XJDomainLive   01-基本使用-全局异步队列 DispatchQueue.global().async { //耗时 *** 作} 02-主队列 DispatchQu

贡献作者 -【XJDomain】
博客XJ: https://my.oschina.net/shengbingli/blog
GitHub直播地址: https://github.com/lishengbing/XJDomainLive

01-基本使用-全局异步队列
dispatchQueue.global().async {     //耗时 *** 作}
02-主队列
dispatchQueue.main.async {     //刷新UI}
03-延迟 *** 作
dispatchQueue.main.asyncAfter(deadline: dispatchTime.Now() + 2) {     // 2秒后执行}
04-队列组

队列组就是把任务放在dispatchGroup中(入组),当任务执行完毕时(出组),即当dispatchGroup中没有任务时,调用监听方法notify,注意:入组和出组一定要成对出现,有几个入组,就一定需要有几个出组。

// 创建一个队列组let group = dispatchGroup()  // A任务入组group.enter()// A任务异步 *** 作dispatchQueue.global().async(group: group,execute: dispatchWorkItem(block: {     sleep(2)     print("download task A ...")     // 出组     group.leave()}))// B任务入组group.enter()// B任务异步 *** 作dispatchQueue.global().async(group: group,execute: dispatchWorkItem(block: {     sleep(2)     print("download task B ...")     // 出组     group.leave()}))// 主线程监听,只有当队列组中没有任务,才会执行闭包。如果多次调用该方法,每次都会去检查队列组中是否有任务,如果没有任务才执行group.notify(queue: dispatchQueue.main) {      print("complete!")}

因为task A和task B是加在全局队列中,所以它们的执行顺序由系统决定,但是complete一定是在两个任务完成后才执行。

总结

以上是内存溢出为你收集整理的【swift3.0】【GCD】全部内容,希望文章能够帮你解决【swift3.0】【GCD】所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1068957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存