AtomicInteger
AtomicInteger
AtomicInteger类的理解与使用
首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下:
public class Sample1 {
private static Integer count = 0;
synchronized public static void increment() {
count++;
}
}
public class Sample1 {
private static AtomicInteger count = 0;
public static void increment() {
count.getAndIncrement();
}
}
1
2
3
4
5
6
7
8
9
AtomicInteger介绍
AtomicInteger是一个提供原子操作的Integer类,通过线程安全的方式操作加减。
AtomicInteger使用场景
AtomicInteger提供原子操作来进行Integer的使用,因此十分适合高并发情况下的使用。
AtomicInteger中的两个特殊方法
getAndupdate(IntUnaryOperator updateFunction)
更新数据并返回以前的值,为什么不直接进入一个int值呢,这里不太明白
public final int getAndUpdate(IntUnaryOperator updateFunction) {
int prev, next;
do {
prev = get();
next = updateFunction.applyAsInt(prev);
} while (!compareAndSet(prev, next));
return prev;
}
作者:叶长风
来源:CSDN
原文:https://blog.csdn.net/u012734441/article/details/51619751
版权声明:本文为博主原创文章,转载请附上博文链接!
内容来自博客园,拒绝爬虫网站