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針對具體對象中的基本類型。