源码
迄今为止人生大写着失败
惨烂人生
展开
-
HashMap源码解读(jdk1.8)
HashMap源码解读1.put方法功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 1.put方法 public V...原创 2020-04-27 21:16:26 · 142 阅读 · 0 评论 -
抽象队列同步器(AbstractQueuedSynchronizer)源码分析
一、什么是AQS? 全称抽象队列同步器。类如其名,维护了队列同步的一个抽象类,在JCU包中有着基石的作用,比如可重入锁、信号量、CountDownLanch实现它的独享模式或共享模式资源获取或者释放来完成自己的功能,LCH队列图。 二、源码分析 1.先看看关于节点的定义 static final class Node { /** 共享模式节点 */ static ...原创 2020-03-29 22:17:40 · 290 阅读 · 0 评论 -
CountDownLatch源码解读
一、什么是CountDownLanch? 给定一个指定数量的计数器,调用指定方法(countDown)计数器减一,调用指定方法(await)来等待计数归0,后面被阻塞的代码得以执行 CountDownLatch(int count) //创建一个倒计数器,指定计数个数count countDown() // 计数减一 await() //等待,当计数减到0时,所有线程并行执行 下面是一个使用例子...原创 2020-03-28 12:22:41 · 212 阅读 · 0 评论 -
jave信号量源码解读(Semaphore)
一、什么是信号量? 一个通俗的例子,今天部门经理带我们30人去西部世界,总共只有5位接待员,一次只能服务5位,剩下的人只能等待空闲的接待员(前面的人接待完毕)。下面是某易的例子。 public class SemaphoreDemo { public static void main(String[] args) { SemaphoreDemo semaphoreDemo=...原创 2020-03-27 23:43:59 · 180 阅读 · 0 评论 -
ReentrantLock源码解读
一、前言 当一个对象访问自己持有锁的资源时,如果没有被阻塞,那么他就是可重入的。关于java里面的同步的实现,常用就悲观可重入锁synchronized,和Lock的实现,以及CAS操作。本文着重介绍可重入锁ReentrantLock(实现Lock接口)的公平锁和非公平锁的源码。 二、上代码(我数了,包括空行其实也就100行核心代码) public class ReentrantLock impl...原创 2020-03-27 23:03:33 · 194 阅读 · 0 评论 -
Cas简单理解
java里的CAS什么是cas? 什么是cas? cas全称compare-And-Swap,简单理解就是比较更新,和内存中指定位置上的值进行比较,如果期望的值和自己的值一致,则把指定位置上的值替换为自己想要的值。他是sun.misc.Unsafe类下的native操作,操作的过程是原子操作。(Don‘’t talk, show the code!) ##下面是cas一个简单的应用(AtomicI...原创 2020-03-27 19:08:35 · 296 阅读 · 0 评论