0
点赞
收藏
分享

微信扫一扫

3D人脸扫描技术与数字人深度定制服务:赋能打造超写实3D数字分身

有幸看到一篇关于这个讲解 2个类的讲解,自己也归纳总结一下。

一、解析

看源码底层会发现实现机制不一样,当然这个也是必须的

LongAdder

点进去之后会发现,CAS 它是一个CAS的实现类。至于Cell类JVM提供的内置函数

官方说法是:

 

 AtomicLong

 而Unsafe 官方自己说明一组不安全的方法,而Unsafe本身非java实现:

二、解释

说到这里,对比之后会发现LongAdder用的CAS是 VarHandle (JDK9开始存在)而 AtomicLong 用的是Unsafe

而查看VarHandle会发现主流CAS使用者AQS的存在。

 而实现方式决定优势:

LongAdder  以数组形式进行值的cas操作,可以预见但多个并发请求过量时,可以分开进行添加

AtomicLong  直接以原子的形式进行添加,过量时,可能对没有LongAdder优化了。

总结:

这样一说,低并发一样效率,高并发,LongAdder应该更适用。

举报

相关推荐

0 条评论