![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发源码
文章平均质量分 84
熟读并发多线程源码
苍鹰蛟龙
这个作者很懒,什么都没留下…
展开
-
并发读源码——并发读源码Striped64/LongAdder/DoubleAdder/LongAccumulator/DoubleAccumulator
文章目录1、LongAdder原理介绍2、LongAdder源码介绍3、LongAdder并发时应用4、DoubleAdder分析1、LongAdder原理介绍LongAdder是JDK8中新增加的一个并发类,LongAdder主要用于对long型变量进行CAS(CAS可以参考前面系列文章)操作,但AtomicLong也是对long型变量进行CAS操作,两者什么区别呢?AtomicLong内部维护了一个volatile long类型的变量,多个线程并发CAS操作该变量,而LongAdder把一个lon原创 2021-03-16 00:08:23 · 264 阅读 · 0 评论 -
并发读源码——AtomicIntegerArray/AtomicLongArray/AtomicReferenceArray
文章目录1、AtomicIntegerArray介绍2、AtomicIntegerArray原理3、AtomicIntegerArray源码详解4、AtomicIntegerArray多线程用法5、AtomicLongArray/AtomicReferenceArray介绍6、保证数组元素另一用法1、AtomicIntegerArray介绍AtomicIntegerArray提供了数组元素的原子操作,前面章节介绍的AtomicInteger,是对其中的一个int类型的值保证原子性,而AtomicInte原创 2021-02-27 18:11:10 · 311 阅读 · 0 评论 -
并发读源码——AtomicIntegerFieldUpdater/AtomicLongFieldUpdater/AtomicReferenceFieldUpdater
文章目录1、AtomicIntegerFieldUpdater介绍2、AtomicIntegerFieldUpdater原理3、AtomicIntegerFieldUpdater源码解析4、AtomicIntegerFieldUpdater多线程用法1、AtomicIntegerFieldUpdater介绍AtomicIntegerFieldUpdater与AtomicInteger什么区别呢?AtomicInteger可以保证内部的属性的操作时原子性的;AtomicIntegerFieldUpdate原创 2021-02-21 00:06:20 · 328 阅读 · 2 评论 -
并发读源码——AtomicStampedReference/AtomicMarkableReference
文章目录1、AtomicStampedReference介绍2、AtomicStampedReference原理分析3、AtomicStampedReference源码分析4、AtomicStampedReference多线程用法1、AtomicStampedReference介绍前面两节介绍的AtomicBoolean、AtomicInteger、AtomicLong都是解决的CAS问题,即拿读取的变量和内存变量比较,如果相同就把要更新的值更新到内存中。但有一种情况:假设一个对象O中一个变量的值为1,原创 2021-02-06 21:12:39 · 429 阅读 · 2 评论 -
并发读源码——AtomicBoolean
文章目录1、AtomicBoolean介绍2、源码解析3、多线程用法1、AtomicBoolean介绍上一节介绍了AtomicInteger加减操作的原子性,通过乐观锁实现,本节介绍AtomicBoolean,该类实现了对布尔类型比较和设置封装为原子操作。AtomicBoolean的源码以及用于都与AtomicInteger类似,可以参考上篇文章。例如如下操作if(flag == true){ flag = false;}该操作是线程不安全的,如果用AtomicBoolean类型封装布尔类型,原创 2021-01-30 22:01:44 · 267 阅读 · 2 评论 -
并发读源码——AtomicInteger/AtomicLong/AtomicStampedReference
文章目录1、AtomicInteger描述2、源码解析3、AtomicInteger演示示例4、多线程用法1、AtomicInteger描述AtomicInteger从名字上看是操作Integer整数的,但Integer是线程不安全的,AtomicInteger是线程安全的。AtomicInteger的作用可以把两个Integer对象的加减乘除等操作变成一个原子操作,如果对Integer的操作不用AtomicInteger,也可以选择用synchronized锁住两个Integer对象的操作,synch原创 2021-01-26 23:34:36 · 408 阅读 · 1 评论