package com.uncle.ThreadTest1;
import java.util.concurrent.atomic.AtomicInteger;
/**
* int count = 0;
* count++;
* 1 count值加载到CPU寄存器
* 2 寄存器中+1操作
* 3 结果写入到内存
*
* volatile可以解决可见性的问题,不能解决原子性的问题
*
* synchronized可以解决上述的所有问题
*
*/
public class AtomicityDemo extends Thread{
// private static int count;
private static AtomicInteger count = new AtomicInteger(0);
private static void addCount() {
for (int i = 0; i < 1000; i++) {
count.incrementAndGet();
}
System.out.println(count);
}
public void run(){
addCount();
}
public static void main(String[] args) {
int len = 10;
AtomicityDemo[] atomicityDemo = new AtomicityDemo[len];
for (int i = 0; i < len; i++) {
atomicityDemo[i] = new AtomicityDemo();
}
for (int i = 0; i < len; i++) {
atomicityDemo[i].start();
}
}
}
AtomicInteger保证原子操作
最新推荐文章于 2024-02-28 15:27:33 发布