gpt4 book ai didi

java - 使用 AtomicReference 对多个预期值进行比较和设置

转载 作者:行者123 更新时间:2023-12-02 04:35:50 27 4
gpt4 key购买 nike

我的情况有些特殊。我希望能够使用 AtomicReferencecompareAndSet() 功能,但有一点改动。

通常,在实际更改之前,您会使用 compareAndSet() 与单个预期值进行比较。就我而言,要比较的预期值可能是众多值之一。

有没有办法使用AtomicReference来做到这一点?如果没有,我应该使用哪些其他技术?也许只是synchronized的传统用法?

最佳答案

我假设您有一组预期值。在这种情况下...

<T> boolean setIfInExpected(AtomicReference<T> ref, Set<?> expected, T newValue) {
while (true) {
T current = ref.get();
if (set.contains(current)) {
if (atomicReference.compareAndSet(current, newValue)) {
return true;
}
} else {
return false;
}
}
}

这是 compareAndSet 的典型使用方式:它们循环运行,直到 AtomicReferencegetget 之间不发生变化。 compareAndSet

关于java - 使用 AtomicReference 对多个预期值进行比较和设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30767900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com