![[Swift 开发] 异步结果作为函数返回值,第1张 [Swift 开发] 异步结果作为函数返回值,第1张](/aiimages/%5BSwift+%E5%BC%80%E5%8F%91%5D+%E5%BC%82%E6%AD%A5%E7%BB%93%E6%9E%9C%E4%BD%9C%E4%B8%BA%E5%87%BD%E6%95%B0%E8%BF%94%E5%9B%9E%E5%80%BC.png)
// 惯例来个Person类
class Person {
class func waitResult() -> [Int] {
let queue = DispatchQueue(label: "currentQueue", attributes: .concurrent)
let group = DispatchGroup()
// 创建信号量,value == 0 会被wait堵塞
// 等待signal() value == 1 释放堵塞
let semaphore = DispatchSemaphore(value: 0)
var arr = [Int]()
queue.async(group: group) {
// ...some....
sleep(3)
// 得到返回值
arr = [1]
// 释放信号量
semaphore.signal()
}
// 等待信号量释放
semaphore.wait()
return arr
}
}
print("开始")
print(Person.waitResult())
print("结束")
// 开始
// [1]
// 结束
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)