关于atomic*原子操作,这里以AtomicInteger类为例

使用场景:

AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,

不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。

/**
 * Atomic原子性测试。
 * 
 * @author cary
 * @version 1.0.0
 */
public class AtomicTest {
    public static void main(String[] args) {
        AtomicInteger ai = new AtomicInteger(0);
        int i1 = ai.get();
        print(i1);
        int i2 = ai.getAndSet(5);
        print(i2);
        int i3 = ai.get();
        print(i3);
        int i4 = ai.getAndIncrement();
        print(i4);
        print(ai.get());
    }

    static void print(int i) {
        System.out.println("i : " + i);
    }
}

结论: atomic比volatile靠谱

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信