我已经了解了使用 Java 来使用处理器的 CAS 指令的可能性。
当我用谷歌搜索示例时,我只找到了诸如 SimulatedCAS 。 这个类显然只是 CAS 的模拟(顾名思义...),在其类方法上使用常见的“同步”。
所以我想知道,如何通过 Java 真正使用 CAS 指令?
最佳答案
研究诸如 AtomicBoolean
和 AtomicReference
之类的类。它们是执行您想要的操作的抽象,但实际上并不位于 CPU 上。
我使用的一种模式是线程安全的状态保持。
private final AtomicBoolean isClosed = new AtomicBoolean(false);
...
public void close() {
if (this.isClosed.compareAndSet(false, true) {
....
}
}
关于java - 如何在java中使用CAS(比较和交换)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21958889/