比较和交换原子整数kotlin中的值
Compare and swap value in atomic integer kotlin
嘿,我正在学习 kotlin 中的原子整数。我想知道如果当前值小于新值是否有原子整数交换值。例如
原子整数 10
场景 1 新值是 5 并且它变为 5 因为 5 小于 10
场景 2 新值是 20 它不会改变原子值,因为 20 大于 10.
我们可以通过 CompareAndSwap 功能做到这一点吗?
根据 @LouisWasserman 建议更新
fun AtomicInt.compareAndSetIfLess(newValue: Int): Boolean {
do {
val oldValue = value
if (newValue > oldValue) {
return false
}
} while (!compareAndSet(oldValue, newValue))
return true
}
我在 Unresolved reference: AtomicInt
上遇到错误
当然可以。下面是一个compareAndSet版本,我想这就是你想要的,但是把它改成compareAndSet也很容易:
fun AtomicInt.compareAndSetIfLess(newValue: Int): Boolean {
do {
val oldValue = value
if (newValue > oldValue) {
return false
}
} while (!compareAndSet(oldValue, newValue))
return true
}
嘿,我正在学习 kotlin 中的原子整数。我想知道如果当前值小于新值是否有原子整数交换值。例如
原子整数 10
场景 1 新值是 5 并且它变为 5 因为 5 小于 10
场景 2 新值是 20 它不会改变原子值,因为 20 大于 10.
我们可以通过 CompareAndSwap 功能做到这一点吗?
根据 @LouisWasserman 建议更新
fun AtomicInt.compareAndSetIfLess(newValue: Int): Boolean {
do {
val oldValue = value
if (newValue > oldValue) {
return false
}
} while (!compareAndSet(oldValue, newValue))
return true
}
我在 Unresolved reference: AtomicInt
当然可以。下面是一个compareAndSet版本,我想这就是你想要的,但是把它改成compareAndSet也很容易:
fun AtomicInt.compareAndSetIfLess(newValue: Int): Boolean {
do {
val oldValue = value
if (newValue > oldValue) {
return false
}
} while (!compareAndSet(oldValue, newValue))
return true
}