Question

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?

Était-ce utile?

La solution

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) {
        ....
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top