문제

I've read about the possibility to use CAS instruction of the processor, using Java.

As I googled for an examples, I only found classes such as SimulatedCAS. This class is obviously only a simulation of CAS (as its name implies...), using commmon "synchronized" on it's class methods.

So I wonder, how can one really use the CAS instruction using Java?

도움이 되었습니까?

해결책

Look into classes like AtomicBoolean and AtomicReference. They're abstractions that do what you want, but aren't actually on the CPU.

One pattern I've used is for thread-safe state keeping.

private final AtomicBoolean isClosed = new AtomicBoolean(false);

...

public void close() {
    if (this.isClosed.compareAndSet(false, true) {
        ....
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top