java5中原子型操作类的应用

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针对具体对象中的基本类型。

posted @ 2016-02-18 21:16  ngulc  阅读(847)  评论(0编辑  收藏  举报