03 2021 档案

摘要:1 介绍 参考: https://segmentfault.com/a/1190000016058789 和 https://blog.csdn.net/anlian523/article/details/106598910。 AQS 有两个队列,双向的 CLH 队列 sync queue 和单向的 阅读全文
posted @ 2021-03-30 21:33 Java与大数据进阶 阅读(271) 评论(0) 推荐(0) 编辑
摘要:@ 1 介绍 上一篇文章,讲了独占锁,AQS(一)独占锁(基于JDK 8),本篇只讲共享锁。 某些共享锁使用的方法在独占锁中已经出现了,不再介绍,请读者自行去上面查看。 在 Semaphore 中,acquire 调用的是 acquireSharedInterruptibly,release 调用的 阅读全文
posted @ 2021-03-29 21:08 Java与大数据进阶 阅读(97) 评论(0) 推荐(0) 编辑
摘要:@ 1 介绍 在开始之前,先推荐一本书和两个博客,书是《Java并发实现原理:JDK源码剖析_出版社 电子工业出版社; 第1版》,可从我同名公众号下载。博客是 https://segmentfault.com/a/1190000016058789 和 https://blog.csdn.net/an 阅读全文
posted @ 2021-03-28 16:22 Java与大数据进阶 阅读(172) 评论(0) 推荐(0) 编辑
摘要:LongAdder 和 LongAccumulator 基本一致,区别在于前者默认是加法,后者会同时传入一个表达式,具体结果是通过二元表达式计算得到的。 DoubleAdder 和 DoubleAccumulator 没有做什么,只是使用 Double.longBitsToDouble 和 Doub 阅读全文
posted @ 2021-03-16 20:13 Java与大数据进阶 阅读(100) 评论(0) 推荐(0) 编辑
摘要:@ 在 atomic 包中,有三个 Reference 相关的类:AtomicReference,AtomicStampedReference,AtomicMarkableReference。 AtomicReference 无法解决 ABA 问题,而后面的两个类特别是 AtomicStampedR 阅读全文
posted @ 2021-03-15 22:29 Java与大数据进阶 阅读(100) 评论(0) 推荐(0) 编辑
摘要:我是用 markdown 写的,富文本不清楚,大家可以试一下。 根据我的实验,发现上传图片时有时候有水印,有时候没有水印。 1.有水印是这样 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210314191844618.jpg?x-oss-process=im 阅读全文
posted @ 2021-03-14 19:35 Java与大数据进阶 阅读(89) 评论(0) 推荐(0) 编辑
摘要:起初我看的是韩顺平老师的各种配置,现在那个视频已经不存在了,可以看别人截的屏。 老师用的是 Oracle JDK 8,我发现很多类看不到,所以导入了 OpenJDK8,记录一下整个配置过程。 我安装的是 JDK8,但是导入 OpenJDK 一样没有问题。 可以在我的公众号获取OpenJDK:Java 阅读全文
posted @ 2021-03-14 18:05 Java与大数据进阶 阅读(49) 评论(0) 推荐(0) 编辑
摘要:@ AtomicIntegerArray 可以原子的更新 int[] 中某个对象。 在找到数组第0个对象的偏移量之后,由于数组中每个对象是顺序排放的,可以根据对象大小计算出数组中某索引的偏移量,然后通过 Unsafe 相关的方法来获取或者修改。 1 偏移量的计算 假设数组中第 0 个对象的在数组中的 阅读全文
posted @ 2021-03-13 09:06 Java与大数据进阶 阅读(72) 评论(0) 推荐(0) 编辑
摘要:@ 1 介绍 AtomicIntegerFieldUpdater 是将某个类 T 的某个 int 属性包装一下,使得该属性能够在多线程中保持原子性。具体使用可见第三节。 有如下的要求: 只能修改对于其可见的字段; 目标类的操作字段必须被volatile关键字修饰; 目标类的操作字段不能被static 阅读全文
posted @ 2021-03-12 19:23 Java与大数据进阶 阅读(110) 评论(0) 推荐(0) 编辑
摘要:@ 1 介绍 AtomicInteger 是一个原子类,增加和删除是原子性的,避免外界直接使用 Unsafe 来实现原子操作。 实现原子性的原理是 CAS,具体可见我前面的文章。 unsafe 介绍(二)与CAS 成员变量 value 是 volatile 的,保证可见性。Volatile 介绍 p 阅读全文
posted @ 2021-03-10 08:09 Java与大数据进阶 阅读(60) 评论(0) 推荐(0) 编辑
摘要:在 Oracle JDK 8 中,找不到 unsafe.java,在 idea 中只能由 unsafe.class 反编译得到一个 unsafe.java。 解压openjdk-8u41-src-b04-14_jan_2020.zip,查看 .\openjdk\jdk\src\share\class 阅读全文
posted @ 2021-03-08 22:11 Java与大数据进阶 阅读(92) 评论(0) 推荐(0) 编辑
摘要:在 Oracle JDK 8 中,找不到 unsafe.java,在 idea 中只能由 unsafe.class 反编译得到一个 unsafe.java。 解压openjdk-8u41-src-b04-14_jan_2020.zip,查看 .\openjdk\jdk\src\share\class 阅读全文
posted @ 2021-03-05 16:36 Java与大数据进阶 阅读(178) 评论(0) 推荐(0) 编辑
摘要:@ 本文主要参考 《Java并发编程的艺术》以及一些博客 1 介绍 如果一个变量用了volatile修饰,那么这个变量是对所有线程共享的、可见的,每次jvm都会读取最新写入的值并使其最新值在所有CPU可见。 当读一个volatile变量时,JMM会把该线程对应的本地内存置为无效。线程接下来将从主内存 阅读全文
posted @ 2021-03-03 10:52 Java与大数据进阶 阅读(67) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示