AtomicInteger

AtomicInteger类的理解与使用

首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
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
版权声明:本文为博主原创文章,转载请附上博文链接!

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄