摘要: 上一篇文章中笔者已经介绍过AQS的基础知识,但是更加具体的源码实现还未涉及,本篇文章笔者就结合具体的AQS实现类来聊一聊AQS的独占锁实现过程 阅读全文
posted @ 2020-10-24 14:29 freeorange 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 从这篇文章开始分析JDK源码中AQS的底层实现原理,作为多线程访问共享资源的同步器框架基础实现,涉及到的东西还是比较多的,一起来看看传说中的AQS实现吧 阅读全文
posted @ 2020-07-04 11:52 freeorange 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 前面一篇文章中说明了Object的阻塞唤醒机制,今天我们要讲解另一个类LockSupport,在AQS中你能看见它的身影,所以需要提前了解其实现和使用机制,便于后面深入AQS的学习 阅读全文
posted @ 2020-05-10 11:48 freeorange 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 从这篇文章开始进行AQS相关的学习,如果你还不明白什么是AQS,可以先去了解下,由于涉及的源码众多,笔者会一步一步进行深入说明整理,在学习AQS前,有很多基础知识是需要我们先去了解的,比如本文所说的Object 阅读全文
posted @ 2020-04-29 12:24 freeorange 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章中说明了ThreadLocal的使用,部分源码实现以及Thread,ThreadLocal,ThreadLocalMap三者之间的关联关系,其中核心实现ThreadLocalMap将在本篇文章中进行讲解,让我们一起来探究下jdk中的ThreadLocalMap是如何实现的 阅读全文
posted @ 2020-03-28 16:09 freeorange 阅读(263) 评论(1) 推荐(1) 编辑
摘要: 在java中,ThreadLocal算是一个比较神秘的类了,我相信如果没接触过Spring源码或者一直在做CRUD操作的开发者一般也很少能接触到它,但是面试时却经常被问到,其实对于更深层次的学习,是需要去了解其使用和实现的,今天就一起了解下这个神秘的ThreadLocal 阅读全文
posted @ 2020-03-15 15:19 freeorange 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章中我们已经介绍了ThreadPoolExecutor线程池,在通过submit方法提交执行任务时曾提及可以跟踪任务执行状态的FutureTask,那么在jdk中是如何实现的呢? 阅读全文
posted @ 2020-02-28 09:40 freeorange 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 前面的文章中分析了Thread的源码,并介绍了其基本应用,然而在实际的企业级应用中执行任务的线程很少直接通过创建Thread,实现run方法的方式完成,通常是通过线程池的方式提交任务来更好的利用资源,进一步简化线程的使用,并防止线程资源的滥用。今天我们就一起来学习下ThreadPoolExecutor的源码,看一看jdK中线程池是如何创建和使用的 阅读全文
posted @ 2020-02-18 10:43 freeorange 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章对Thread的状态转换和其中的部分源码进行了一个说明,今天继续对Thread源码进行解读,有很多涉及到底层的知识,笔者这里也只能进行简单了解,一起看一看吧 阅读全文
posted @ 2020-01-12 18:00 freeorange 阅读(389) 评论(0) 推荐(0) 编辑
摘要: JAVA中多线程的操作对于初学者而言是比较难理解的,其实联想到底层操作系统时我们可能会稍微明白些,对于程序而言最终都是硬件上运行二进制指令,然而,这些又太过底层,今天来看一下JAVA中的线程,浅析JDK源码中的Thread类,之后能帮助我们更好的处理线程问题 阅读全文
posted @ 2019-12-29 15:22 freeorange 阅读(398) 评论(0) 推荐(1) 编辑
摘要: 上一篇文章中我们已经介绍过rocketmq的集群环境搭建,然而在源码的学习中我们还需要进行本地的调试和问题的定位查找,毕竟还是在本地方便些,今天就说一说如何进行源码的本地调试 阅读全文
posted @ 2019-12-22 19:34 freeorange 阅读(1833) 评论(2) 推荐(0) 编辑
摘要: 非阻塞队列ConcurrentLinkedQueue我们已经了解过了,既然是Queue,那么是否有其双端队列实现呢?答案是肯定的,今天就继续说一说非阻塞双端队列实现ConcurrentLinkedDeque 阅读全文
posted @ 2019-12-08 14:54 freeorange 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 上一篇入门基础部分对rocketmq进行了一个基础知识的讲解说明,在正式使用前我们需要进行环境的搭建,今天就来说一说rockeketmq分布式集群环境的搭建 阅读全文
posted @ 2019-12-07 12:31 freeorange 阅读(704) 评论(0) 推荐(0) 编辑
摘要: 分布式消息队列中间件作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性,其复杂性可见一斑,作为核心组件,有必要去深入了解学习 阅读全文
posted @ 2019-11-24 12:13 freeorange 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 相信绝大多数java开发者或多或少的都应该知道jvm,但是有多少人又深入去了解过,笔者深感自身能力的不足,去看了些资料,觉得还是有必要整理下自己的学习记录,时常回头看看,多看多实践提升自己的能力,故开始进行jvm相关的知识梳理和记录,一起来学习吧 阅读全文
posted @ 2019-11-23 16:47 freeorange 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 阻塞队列的实现前面已经讲解完毕,今天我们继续了解源码中非阻塞队列的实现,接下来就看一看ConcurrentLinkedQueue非阻塞队列是怎么完成操作的 阅读全文
posted @ 2019-11-09 18:47 freeorange 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 阻塞队列中目前还剩下一个比较特殊的队列实现,相比较前面讲解过的队列,本文中要讲的LinkedBlockingDeque比较容易理解了,但是与之前讲解过的阻塞队列又有些不同,从命名上你应该能看出一些端倪,接下来就一起看看这个特殊的阻塞队列 阅读全文
posted @ 2019-11-02 10:43 freeorange 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 在JDK8的阻塞队列实现中还有两个未进行说明,今天继续对其中的一个阻塞队列LinkedTransferQueue进行源码分析,如果之前的队列分析已经让你对阻塞队列有了一定的了解,相信本文要讲解的LinkedTransferQueue的源码也能很快被理解,接下来一起学习吧 阅读全文
posted @ 2019-10-26 19:29 freeorange 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 作为阻塞队列的一员,DelayQueue(延迟队列)由于其特殊含义而使用在特定的场景之中,主要在于Delay这个词上,那么其内部是如何实现的呢?今天一起通过DelayQueue的源码来看一看其是如何完成Delay操作的 阅读全文
posted @ 2019-09-28 15:26 freeorange 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 之前一篇文章已经讲解了阻塞队列SynchronousQueue的大部分内容,其中默认的非公平策略还未说明,本文就紧接上文继续讲解其中的非公平策略下的内部实现,顺便简单说明其涉及到的线程池部分的使用 阅读全文
posted @ 2019-09-15 17:41 freeorange 阅读(252) 评论(0) 推荐(0) 编辑