VademécumVademécum\Variables atómicas

Variables atómicas

El paquete java.util.concurrent.atomic define variables en las que todos los métodos están sincronizados. Por ejemplo

     AtomicBoolean

     AtomicInteger

     AtomicIntegerArray

     AtomicLong

     AtomicLongArray

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();

   }

}

 

principio
principio