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
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2019-04-19 09:56  随风而行-  阅读(136)  评论(0编辑  收藏  举报