JUC源码解析
CLthinking
这个作者很懒,什么都没留下…
展开
-
JUC源码解析(开篇)---Unsafe类源码解析
计划用一段时间阅读完JDK8中的JUC包下的所有源码,以这一篇作为开头。熟悉JUC的人肯定知道,在JUC中大量使用了sun.misc包中的Unsafe类中的CAS相关的方法,所以作为开篇,我们先阅读Unsafe类提供了那些方法给我们使用。在JDK8以后,sun包就不再开源了,但是我们可以下载OpenJDK8的源码来进行分析,里面包含了sun包,下载地址:OpenJDK8源码地址和以往一样,...原创 2019-05-15 17:36:26 · 379 阅读 · 1 评论 -
JUC源码解析之一---AtomicInteger类源码解析
AtomicInteger类是JUC子包atomic包下的一个类,应该也算是该原子包下使用最多的一个类了。它基于CAS提供了一套原子更新一个整数的方法,对于i++操作,就不是一个原子操作,在并发的情况下会出现数据安全的问题。AtomicInteger类对这些操作进行 了很好的封装,并且也非常的高效。下面我们就开始来分析其底层实现是什么样子的:和以前一样,我们先看构造方法和成员变量:p...原创 2019-05-16 15:49:49 · 241 阅读 · 0 评论 -
JUC源码解析之二---AtomicLong类源码解析
AtomicLong和AtomicInteger类几乎是一样的,就是将int换成了long,底层CAS由compareAndSwapInt变成了compareAndSwapLong,所以我们就不在重复了,直接贴出AtomicLong的源码,大家自行阅读好了:/** * An {@code int} value that may be updated atomically. See the...原创 2019-05-16 15:59:12 · 152 阅读 · 0 评论 -
JUC源码解析之三---AtomicBoolean类源码解析
AtomicBoolean类就是对Boolean类型值的原子更新了,由于Unsafe类中只提供了三种类型的CAS操作(分别是int,long,object)类型,并没有针对boolean类型的CAS操作,所以在AtomicBoolean中,使用的int型来代替Boolean类型了,0表示false,1表示true。AtomicBoolean与AtomicInteger类类似,所以我们也是直接给...原创 2019-05-16 16:07:26 · 139 阅读 · 0 评论 -
JUC源码解析之四---AtomicReference类源码解析
AtomicReference类,顾名思义就是原子的更新应用类型,所有的方法都与AtomicInteger类类似,这里我们也是直接给出源码:/** * An object reference that may be updated atomically. See the {@link * java.util.concurrent.atomic} package specificatio...原创 2019-05-16 16:26:27 · 143 阅读 · 0 评论