JUC包中的分而治之策略-为提高性能而生

加多 2019-01-12

Java核心技术 java 性能 线程 random static 多线程 数组

一、前言

本次分享我们来共同探讨JUC包中一些有意思的类,包含AtomicLong & LongAdder,ThreadLocalRandom原理。

二、AtomicLong & LongAdder

2.1 AtomicLong 类

AtomicLong是JUC包提供的原子性操作类,其内部通过CAS保证了对计数的原子性更新操作。

大家可以翻看源码发现内部是通过UnSafe(rt.jar)这个类的CAs操作来保证对内部的计数器变量 long value进行原子性更新的,比如JDK8中:

    public final long incrementAndGet() {
        return unsafe.getAndAddLong(this, valueOffset, 1L) + 1L;
    }

其中unsafe

登录 后评论
下一篇
我是小助手
33597人浏览
2019-07-31
相关推荐
Java 并发工具包 | J.U.C
705人浏览
2019-03-14 14:44:32
微服务与架构师
753人浏览
2017-05-02 13:45:00
AQS简简单单过一遍
488人浏览
2018-04-25 21:09:00
Java并发容器大合集
426人浏览
2018-05-12 10:29:08
0
2
1
1389