我经常在ObjectiveC文件中使用标准数据体,但它现在还没有(会用到吗?)显示在Swift中。我发现有几个开源框架似乎提供了相同的功能,但我想要的是一些小而简单的东西。
发布于 2019-03-06 05:41:38
I discovered the following code,对我来说效果很好:
struct AtomicBoolean {
private var semaphore = DispatchSemaphore(value: 1)
private var b: Bool
var val: Bool {
get {
semaphore.wait()
let tmp = b
semaphore.signal()
return tmp
}
set {
semaphore.wait()
b = newValue
semaphore.signal()
}
}
init(_ initialState: Bool) {
b = initialState
}
}它确实是小巧而高效的!DispatchSemaphores也是高效的,只有在有争用的情况下才进入内核空间(参考并发编程指南)。
var foo = AtomicBoolean(false)
foo.var = true
if foo.var == true {
print("See!")
}https://stackoverflow.com/questions/55012056
复制相似问题