[Swift 开发] GCD常用方法

[Swift 开发] GCD常用方法,第1张

概述GCD常用的用法 子线程 DispatchQueue.global().async { print("开一条全局队列异步执行任务") } 主线程 DispatchQueue.main.async { print("在主队列执行任务") } wait var myQueue = DispatchQueue(label: "第一

GCD常用的用法

子线程

dispatchQueue.global().async {           print("开一条全局队列异步执行任务")        }  

主线程
dispatchQueue.main.async {         print("在主队列执行任务")   }     


wait

var myQueue = dispatchQueue(label: "第一条线程")var myQueue2 = dispatchQueue(label: "第二条线程")let group = dispatchGroup()myQueue.async(group: group,qos: .default,flags: []) {    for _ in 0...10 {        print("耗时任务一")    }}myQueue.async(group: group,flags: []) {    for _ in 0...10 {        print("耗时任务二")        sleep(UInt32(3))    }}//等待上面任务执行,会阻塞当前线程,超时就执行下面的,上面的继续执行。可以无限等待 .distantFuturelet result = group.wait(timeout: .Now() + 2.0) switch result {case .success:    print("不超时,上面的两个任务都执行完")case .timedOut:    print("超时了,上面的任务还没执行完执行这了")}print("接下来的 *** 作")

notify
let group = dispatchGroup()       myQueue?.async(group: group,flags: [],execute: {            for _ in 0...10 {             print("耗时任务一")           }       })       myQueue?.async(group: group,execute: {           for _ in 0...10 {                 print("耗时任务二")           }       })       //执行完上面的两个耗时 *** 作,回到myqueue队列中执行下一步的任务       group.notify(queue: myQueue!) {           print("回到该队列中执行")       }  

barrIEr

myQueue?.async {//任务一              for _ in 0...10 {                  print("......")              }          }          myQueue?.async {//任务二              for _ in 0...10 {                  print("++++++");              }          }            // barrIEr 会等待上面执行完毕再执行下面的,会阻塞当前线程          //        myQueue?.async(flags:.barrIEr,execute: {//1.          //            print("000000")          //        })            myQueue?.async(group: nil,flags: .barrIEr,execute: {//2.              print("000000")          })            myQueue?.async {              print("111111")          }  
总结

以上是内存溢出为你收集整理的[Swift 开发] GCD常用方法全部内容,希望文章能够帮你解决[Swift 开发] GCD常用方法所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存