
源码解析
文章平均质量分 94
Epoch-Elysian
just do it
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分布式事务框架(seata1.5.0)源码分析-AT模式
深入seata1.5.0源码分析AT模式实现原理,解析其数据源代理过程原创 2022-07-23 13:33:45 · 3208 阅读 · 0 评论 -
分布式事务框架(seata1.5.0)源码分析-通信模型
深入源码解析seata的通信过程原创 2022-07-10 22:44:12 · 1670 阅读 · 0 评论 -
分布式事务框架(seata1.5.0)源码分析-TCC模式
深入seata源码了解分布式事务执行流程原创 2022-07-09 12:20:23 · 1669 阅读 · 0 评论 -
Spring5.0源码深度解析(注解驱动)-整体流程分析
现在基本所有的java应用都是面向Spring编程,那么Spring是如何加载Bean的?又是怎么解析@Configuration、@OnConditionalXXX、@Service、@Component、@Autowired、@Resource、@import等注解的?SpringAop的流程? 本文主要从源码的角度深入剖析这些问题。测试代码public class MyApplication { public static void main(String[] args) { Anno原创 2021-03-04 00:06:33 · 6485 阅读 · 3 评论 -
JAVA线程池源码深度解析
今天我们来说一说java编程中一个非常重要的工具:java线程池,顾名思义,线程池就是存放线程的池子。要使用线程的时候从池子里面拿出来,不用了再放回去。接下来我们将从源码的角度一步步分析java线程池的奥义。JAVA线程池先来看一下java线程池(ThreadPoolExecutor)大致的一个类图可以看到ThreadPoolExecutor的父接口有Executor和ExecutorService,其中ExecutorService是对Executor接口的扩展,AbstractExecu原创 2020-07-11 12:16:46 · 3688 阅读 · 1 评论 -
Java并发之BlockingQueue源码解析
首先来说BlockingQueue是什么?从字面上来看,BlockingQueue就是阻塞队列,它是一个先进先出且线程安全的队列。那么它什么时候发生阻塞?有两种情况:队列已满时进行入队操作,这个时候会阻塞,等待队列中的元素出队 队列为空时进行出队操作,这个时候也会阻塞,等待有元素入队BlockingQueue适用于生产者-消费者的场景。生产者不断地生产对象丢到BlockingQueue中(入队),直到BlockingQueue爆满。生产者线程会阻塞,等待消费者消费对象。而消费者不断地从Blockin原创 2020-07-04 15:21:55 · 361 阅读 · 0 评论 -
AQS之ReentrantReadWriteLock
本文对java并发包中ReentrantReadWriteLock进行源码分析,我们都知道ReentrantReadWriteLock就是读写锁,也是基于AQS来实现的,但是它拥有两种锁实例,读锁和写锁。其中写锁是独占锁,该锁同一时间被一个线程持有。而读锁是共享锁,可以被多个线程同时使用。ReentrantReadWriteLock在持有写锁的情况下,是可以获取读锁的。而持有读锁的情况下,是不允许获取写锁的,必须先释放掉读锁再获取写锁,否则会出现死锁情况。下面进入源码分析环节,先来看一看Reentr原创 2020-06-28 20:03:04 · 410 阅读 · 0 评论 -
AQS之Semaphore
目录acquirerelease总结从字面意思上来看,Semaphore 就是信号量的意思,可以用来做并发控制。其实我们可以把它理解成一个资源池,类似java的线程池。Semaphore是基于AQS的共享模式来实现的,所有线程共用同一个资源池。在构造方法中可以初始化资源的数量,例如new Semaphore(N),这里传入的N,其实就是将AQS中的state初始化为N,每个线程来了之后,通过acquire()方法获取到资源后,才能继续往下执行,获取资源其实就是对state进行-1 ,如果原创 2020-06-19 20:14:27 · 337 阅读 · 0 评论 -
AQS之CyclicBarrier
目录await总结上篇文章介绍了CountDownLatch,这篇文章重点介绍CyclicBarrier。上篇文章里说过,CountDownLatch是基于AQS的共享模式实现的,而CyclicBarrier其实是基于ReentrantLock和Condition来实现的。从名称上来看CyclicBarrier就是可循环的栅栏,如果我们把CountDownLatch当成一个计数器,那CyclicBarrier就是可重复利用的计数器,它拥有重置的功能,而CountDownLatch减到0就没了。原创 2020-06-19 00:16:19 · 294 阅读 · 0 评论 -
AQS之CountDownLatch
CountDownLatch是java并发包中一个常见的类,本文将从源码的角度来分析CountDownLatch的实现原理,而CountDownLatch是基于AQS的共享锁模式来实现的,所以需要对AQS有一定的了解。原创 2020-06-10 21:09:14 · 557 阅读 · 0 评论 -
从spring容器启动解析webmvc源码
Spring webmvc启动流程本文将从spring容器启动过程去分析springmvc源码,首先我们思考一个问题:web容器在启动的时候是怎么将bean解析并加载到spring容器中的,像我们自己如果要启动容器,那是不是要new ApplicationContext(),并且把xml配置文件路径或者包扫描路径传进去。那么webmvc是怎么解决这个问题的呢?以tomcat为例,我们的...原创 2020-04-11 12:01:28 · 265 阅读 · 0 评论