import java.util.concurrent.atomic.AtomicInteger;
/**
* AtomicInteger的使用
*/
public class TestAtomic {
public static void main(String[] args) {
OperationData operationData = new OperationData();
for (int i = 0; i < 20; i++) {
new Thread(() -> {
for (int j = 0; j < 1000; j++) {
operationData.addCount();
operationData.addAtomic();
}
}).start();
}
//需要等new的20个线程执行结束
while (Thread.activeCount() > 2) {
Thread.yield();
}
System.out.println("非原子的++结果:" + operationData.count);
System.out.println("原子的++结果:" + operationData.atomicInteger);
}
}
class OperationData {
static volatile int count = 0;
static AtomicInteger atomicInteger = new AtomicInteger();
public void addCount() {
count++;
}
public void addAtomic() {
atomicInteger.getAndIncrement();
}
}
AtomicInteger的使用
最新推荐文章于 2023-07-06 07:02:34 发布
本文通过一个简单的Java程序演示了AtomicInteger在多线程环境下的使用,对比了普通整型变量和AtomicInteger在并发操作下的表现,突出了AtomicInteger在保证线程安全方面的优势。
763

被折叠的 条评论
为什么被折叠?



