都不是原子操作。
写了一个简单程序。如下:
public class Testatomic {
private static int record_number=0;
private static final int SIZE=1000;
private static void outInfo(){
System.out.println(record_number);
}
public static void main(String[] args){
Thread[] threads=new Thread[SIZE];
for(int len=0;len
threads[len]=new AddThread();
threads[len].start();
}
outInfo();
}
static class AddThread extends Thread{
public void run(){
for(int i=0;i<10000;i++){
record_number++;
}
}
}
}
第一次执行:返回结果:8805968
第二次执行:返回结果:9444850
差的很多吧