swift 使用NSCondition自定义实现Dispatch
作者:
zh_19 | 来源:发表于
2018-12-03 19:33 被阅读2次
材料
- NSCondition 条件锁
struct ZHSemaphore {
var value: Int
var wakeups: Int = 0
let cond = NSCondition()
init(value: Int) {
self.value = value
}
}
extension ZHSemaphore {
mutating func wait() {
cond.lock()
value -= 1
if value < 0 {
repeat {
cond.wait()
debugPrint("iam wake up")
} while wakeups < 1
wakeups -= 1
}
cond.unlock()
}
mutating func signal() {
cond.lock()
value += 1
if value <= 0 {
wakeups += 1
cond.signal()
}
cond.unlock()
}
}
本文标题:swift 使用NSCondition自定义实现Dispatch
本文链接:https://www.haomeiwen.com/subject/kojucqtx.html
网友评论