CountDownLatch 瞬间炸裂!同基于 AQS,凭什么 CyclicBarrier 可以这么秀?

2020-11-08
阅读 9 分钟
1.2k
前言看完 CountDownLatch 正准备表示一番,突然看到了一个 CyclicBarrier —— 回环屏障。沃特?回环还屏障?说比 CountDownLatch 要多一个回环,那咱可得瞧一瞧,看一看了!

快来看看!AQS 和 CountDownLatch 有怎么样的关系?

2020-11-08
阅读 5 分钟
1.2k
前言CountDownLatch 一个同步辅助工具,同样是基于 AQS 实现,本篇文件主要是介绍 CountDownLatch 的使用,以及源码。

给大家介绍下,这是我的流程图软件 —— draw.io

2020-11-08
阅读 2 分钟
3.3k
前言之前推了一篇文章《十张图带大家看懂 ES 原理 !明白为什么说:ES 是准实时的!》,很多小伙伴都比较好奇在文章中的图是用的什么画图软件?看那么明显的手绘风格,当然是手画的啦!(开玩笑),其实我用的是 draw.io ,下面分享我的画图软件 —— draw.io 。

【Elasticsearch 技术分享】—— 十张图带大家看懂 ES 原理 !明白为什么说:ES 是准实时的!

2020-11-08
阅读 3 分钟
1.9k
前言说到 Elasticsearch ,其中最明显的一个特点就是 near real-time 准实时 —— 当文档存储在Elasticsearch中时,将在1秒内以几乎实时的方式对其进行索引和完全搜索。那为什么说 ES 是准实时的呢?

【Elasticsearch 技术分享】—— ES 查询检索数据的过程,是什么样子的?

2020-11-07
阅读 1 分钟
2.2k
前言ES 使用过程中常用的就是查询以及检索,那查询和检索的过程,什么样的呢?查询流程 {代码...} Client 将请求发送到任意节点 node,此时 node 节点就是协调节点(coordinating node)。协调节点对 id 进行路由,从而判断该数据在哪个shard。在 primary shard 和 replica shard 之间 随机选择一个,请求获取 doc。接收...

【Elasticsearch 技术分享】—— Elasticsearch 存储一条数据, put 过程是什么样子的?

2020-11-07
阅读 3 分钟
1.3k
前言在前面已经介绍了 ES 中常用的一些名词,知道了数据是存储在 shard 中的,而 index 会映射一个或者多个 shard 。那这时候我要存储一条数据到某个索引下,这条数据是在哪个 index 下的呢?

【Elasticsearch 技术分享】—— ES 常用名词及结构

2020-11-07
阅读 2 分钟
1.5k
前言看完什么是 Elasticsearch 以及了解到了倒排索引的概念,下面就熟悉下 ES 中常用的一些名词。常用术语名词解释cluster一个或者多个 node 指定相同的 cluster name,则它们会组成集群,并且自动选举 master,以及在故障时自动选举。node节点是属于集群的Elasticsearch的运行实例 。在启动时,节点将使用单播来发现具...

【Elasticsearch 技术分享】—— Elasticsearch ?倒排索引?这都是什么?

2020-11-07
阅读 2 分钟
1.8k
前言革命同志是块砖,哪里需要哪里搬!这不,老大发话,要我在组内做一个 Elasticsearch 技术分享。这不话题一转,开始看起来 ES 了。虽然很久之前用过 ELK 做过日志监控系统,但是毕竟时隔已久,还是得从头看起。当然手头的活也不能停,话不多说,开始分享。先看看什么是 ES?

除了读写锁,JUC 下面还有个 StampedLock!还不过来了解一下么?

2020-11-07
阅读 3 分钟
1.4k
前言在了解完 ReentrantLock 和 ReentrantReadWriteLock 之后,惊奇的发现 JUC 下还有一个 StampedLock 。 查阅资料发现是 JDK8 新增的一个锁。现在已经 JDK15 了,原谅我的孤陋寡闻,实在是业务开发中用的太少。那行吧,赶紧来看一下 StampedLock 到底是什么?为什么有了 ReentrantLock 和 ReentrantReadWriteLock 之后...

小伙伴想写个 IDEA 插件么?这些 API 了解一下!

2020-11-07
阅读 5 分钟
2.3k
前言在看完 IDEA 插件开发简易教程后,小伙伴们是否迫不及待的想自己上手整一个插件了?心里规划好了一二三,但是却不知道从哪里开始下手。下面我分享下自己整理的一些常用的 API。

IDEA 插件找不到?看这里!那就自己敲一个!

2020-11-07
阅读 6 分钟
3.4k
前言大家都经常使用 IDEA 进行开发,肯定会使用一些 IDEA 插件,我之前也写过两个插件,不过已经很久没有更新了,就让它先放着吧!那小伙伴你是否想亲手写一个插件,或者你是否有一些插件的想法,但是找不到插件。那就自己实现一个吧!

快进来!花几分钟看一下 ReentrantReadWriteLock 的原理!

2020-11-07
阅读 12 分钟
1.5k
前言在看完 ReentrantLock 之后,在高并发场景下 ReentrantLock 已经足够使用,但是因为 ReentrantLock 是独占锁,同时只有一个线程可以获取该锁,而很多应用场景都是读多写少,这时候使用 ReentrantLock 就不太合适了。读多写少的场景该如何使用?在 JUC 包下同样提供了读写锁 ReentrantReadWriteLock 来应对读多写少的...

不能再被问住了!ReentrantLock 源码、画图一起看一看!

2020-11-05
阅读 8 分钟
1.6k
前言在阅读完 JUC 包下的 AQS 源码之后,其中有很多疑问,最大的疑问就是 state 究竟是什么含义?并且 AQS 主要定义了队列的出入,但是获取资源、释放资源都是交给子类实现的,那子类是怎么实现的呢?下面开始了解 ReentrantLock。

老大说新项目的结构和 xxx 项目一样就可以了,我 ……(使用 Maven Archetype 快速创建项目)

2020-11-05
阅读 6 分钟
2.1k
前言又要开发新项目了,还是创建新项目,怎么办?老大说按照 xxx 项目的结构创建一个新项目就可以了。公众号:liuzhihangs,记录工作学习中的技术、开发及源码笔记;时不时分享一些生活中的见闻感悟。欢迎大佬来指导!

别走!这里有个笔记:图文讲解 AQS ,一起看看 AQS 的源码……(图文较长)

2020-11-05
阅读 16 分钟
1.4k
前言AbstractQueuedSynchronizer 抽象队列同步器,简称 AQS 。是在 JUC 包下面一个非常重要的基础组件,JUC 包下面的并发锁 ReentrantLock CountDownLatch 等都是基于 AQS 实现的。所以想进一步研究锁的底层原理,非常有必要先了解 AQS 的原理。公众号:liuzhihangs,记录工作学习中的技术、开发及源码笔记;时不时分享...

JUC 包下工具类,它的名字叫 LockSupport !你造么?

2020-11-05
阅读 7 分钟
1.3k
前言LockSupport 是 JUC 中常用的一个工具类,主要作用是挂起和唤醒线程。在阅读 JUC 源码中经常看到,所以很有必要了解一下。公众号:liuzhihangs ,记录工作学习中的技术、开发及源码笔记;时不时分享一些生活中的见闻感悟。欢迎大佬来指导!

JDK 8 新增的 LongAdder,得过来看一下!

2020-11-05
阅读 8 分钟
1.8k
前言在介绍 AtomicInteger 时,已经说明在高并发下大量线程去竞争更新同一个原子变量时,因为只有一个线程能够更新成功,其他的线程在竞争失败后,只能一直循环,不断的进行 CAS 尝试,从而浪费了 CPU 资源。而在 JDK 8 中新增了 LongAdder 用来解决高并发下变量的原子操作。下面同样通过阅读源码来了解 LongAdder 。公...

请介绍下你了解的ThreadLocal,它的底层原理!

2020-11-05
阅读 12 分钟
2k
前言业务开发中经常使用 ThreadLocal 来存储用户信息等线程私有对象... ThreadLocal 内部构造是什么样子的?为什么可以线程私有?常说的内存泄露又是怎么回事?公众号:liuzhihangs ,记录工作学习中的技术、开发及源码笔记;时不时分享一些生活中的见闻感悟。欢迎大佬来指导!

写文档太麻烦,试试这款 IDEA 插件吧!爽到飞起~

2020-11-03
阅读 4 分钟
4.1k
前言每次开发完新项目或者新接口功能等,第一件事就是提供接口文档。说到接口文档,当然是用 Markdown 了。各种复制粘贴字段,必填非必填,字段备注,请求返回示例等等。简直是浪费时间哇。所以想到了开发一款插件来解决重复复制文档的问题。下面来看我介绍介绍这款插件。PS:插件比较简陋,还需要不断迭代。