java.util.concurrent.atomic包中提供了對基本數據類型,對數組中的基本數據類型和類中的基本數據類型的操作。詳情見API。
下面實例簡單介紹AtomicInteger類的使用:
1 public class AtomicTest { 2 public static void main(String[] args) { 3 final Ticket ticket = new Ticket(); 4 for (int i = 0; i < 3; i++) { 5 new Thread(new Runnable() { 6 @Override 7 public void run() { 8 while(ticket.getCount()>0){ 9 System.out.println(Thread.currentThread().getName()+" count: "+ticket.decrement()); 10 } 11 } 12 }).start(); 13 } 14 15 } 16 } 17 class Ticket{ 18 public AtomicInteger count = new AtomicInteger(100); 19 20 public int decrement(){ 21 return count.getAndDecrement(); 22 } 23 24 public int getCount() { 25 return count.get(); 26 } 27 28 }
AtomicIntegerArray和AtomicIntegerFieldUpdater也提供了類似的操作,只不過AtomicIntegerArray針對數組中的基本類型,而AtomicIntegerFieldUpdater針對具體對象中的基本類型。