El paquete java.util.concurrent.atomic define variables en las que todos los métodos están sincronizados. Por ejemplo
Las siguientes clases (tipo monitor) son equivalentes (aunque probablemente el uso de AtomicInteger sea algo más rápido en ejecución):
class SynchronizedCounter |
class AtomicCounter |
public class
SynchronizedCounter { private int c = 0; public synchronized void increment() { c++; } public synchronized void decrement() { c--; } public synchronized int value() { return c; } } |
import java.util.concurrent .atomic.AtomicInteger; public class
AtomicCounter { private AtomicInteger c = new AtomicInteger(0); public void increment() { c.incrementAndGet(); } public void decrement() { c.decrementAndGet(); } public int value() { return c.get(); } } |
Temas relacionados