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

  1. 云栖社区>
  2. Java技术进阶>
  3. 博客>
  4. 正文

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

加多 2019-01-12 11:46:19 浏览1390
展开阅读全文

一、前言

本次分享我们来共同探讨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

网友评论

登录后评论
0/500
评论
加多
+ 关注
所属云栖号: Java技术进阶