源码解析
探索源码,寻找源码中的快乐!
木子雷
正在努力进阶中的渣渣!
展开
-
面试手写HashMap,手撕HashMap
前言: 现在面试时,面试官经常会问到HashMap,简单点就会问下HashMap的一些关键知识点,困难些的可能会当场让你手写一个HashMap,考察下你对HashMap底层原理的了解深度;所以,今天特别手写了一个简单的HashMap,只实现了 put、get、containsKey、keySet 方法的 HashMap,来帮助我们理解HashMap的底层设计原理。本文...原创 2019-07-13 23:51:24 · 2076 阅读 · 0 评论 -
AQS之CountDownLatch源码解析
前言:CountDownLatch(倒计数器)是JDK并发包下的一个同步工具类,其内部是依赖于AQS(AbstractQueuedSynchronizer)的 共享锁(共享模式)。应用场景:针对于 CountDownLatch 倒计时器, 一种典型的场景就是类似于火箭发射;在火箭发射前,为了保证万无一失,往往还要进行各项设备、仪器的检测,只有等到所有的检查完毕且没问题后,引擎才能点火。那么在检测环节中多个检测项可以同时并发进行的,只有所有检测项全部完成后,才会通知引擎点火的,这里可以使用 Cou原创 2020-05-31 19:24:08 · 406 阅读 · 0 评论 -
AQS之ReentrantLock源码解析
前言:Java中的同步类ReentrantLock是基于AbstractQueuedSynchronizer(简称为AQS)实现的。今天从源码来了解下ReentrantLock中非公平锁的加锁和释放锁(ReentrantLock中支持公平锁和非公平锁,默认是非公平锁的,但可以通过创建ReentrantLock对象时传入参数指定使用公平锁)。在了解ReentrantLock前,需要对AQS有一定的了解,否则在学习时会比较困难的,并且在通过源码学习ReentrantLock时也会穿插着讲解AQS内容。原创 2020-05-24 19:32:51 · 955 阅读 · 0 评论