NSCondition与NSConditionLock

相同点:
都需要3个元素:互斥锁,条件变量,条件探测变量

除此之外,条件变量,本身还有一个值,来控制cpu的等待和唤醒。

不同点:
NSCondition条件量,需要一个外部共享变量,来探测条件是否满足
NSConditionLock条件锁, 不需要,条件锁自带一个探测条件,是否满足

let a:Int = 2
let cond = NSCondition()
cond.lock()
debug("等待条件-----1111")
while a != 2{
cond.wait()
}
cond.unlock()
debug("条件得到!--------1111")

let lock = NSConditionLock(condition: 2)
debug("等待条件-------2222")
lock.lock(whenCondition: 2)
debug("等待条件---------2222")
lock.unlock()
debug("条件得到-------2222")

你可能感兴趣的:(NSCondition与NSConditionLock)