基本数据定义数组 :int [] intArray= new int[100]; 原子类型定义数组: AtomicInteger [] aiArray= new AtomicIntegre[100]; 两者所定义的形式并未不同,知识类型不同而已。 JDK中提供了操作原子数组的类:AtomicIntegerArray 该类的定义如下: AtomicIntegerArray aia = AtomicIntegerArray(100); 也可以将一个普通的数组转化为原子数组,例如: AtomicIntegerArray aia = new AtomicIntegerArray(intArray); 类AtomicIntegerArray有两个构造方法: 1)AtomicIntegerArry(int length); //创建给定长度的数组 2) AtomicIntegerArray( int[] array);//创建与给定长度相同长度的新的原子类数字,并从给定数组复制其所有的元素。 Demo示例: 多个线程对同一数组进行操作,使用原子操作为数组的每一个元素增1。 public class Worker extends Thread{ AtomicIntegerArray aia; public Worker( String name, AtomicIntegerArray aia){ this.aia = aia; setName( name );//设定线程名称 } public void run(){ for(int i=0;i<aia.length();i++){ //该方法是以原子的方式在索引i的元素加1 aia.incrementAndGet(i); } System.out.println(getName()+"执行完毕!"); } } public class Index{ public static void main(String [] args){ AtomicIntegerArray aia = new AtomicIntegerArray(10000); for(int i =0;i<10000;i++){ aia.set(i,0);//将给定位置的元素,设置为给定的值。 } System.out.println("初始化完毕!"); Thread w1 = new Worker("工人一",aia); Thread w2 = new Worker("工人二",aia); Thread w3 = new Worker("工人三",aia); Thread w4 = new Worker("工人四",aia); w1.start(); w2.start(); w3.start(); w4.start(); try{ w1.join(); w2.join(); w3.join(); w4.join(); }catch(InterruptedException e){ e.printStackTrace(); } for(int i=0;i<10000;i++){ if(aia.get(i)!=4){ System.out.println("验证失败!"); break; } } } }