- 博客(6)
- 问答 (8)
- 收藏
- 关注
原创 ThreadPoolExecutor线程池源码解析以及面试难题
大白话讲解ThreadPoolExecutor源码前言一、在看源码是先思考几个问题?二、ThreadPoolExecutor源码1.重要常量和变量2.构造器3. execute(Runnable command) 任务提交方法(1) execute(...) 提交任务(2) workerCountOf(...) 计算线程数(3) addWorker(...)方法(4) Worker类(5) runWorker(this)方法(6) getTask() 获得阻塞队列中任务(7) processWorkerE
2021-11-26 17:29:04 201
原创 ConcurrentHashMap源码讲解
大白话讲解ConcurrentHashMap源码前言一、重要常量和变量二、构造器(5个)put(...)方法1.putVal(...)方法2. initTable()方法--初始化数组3. 其他四个方法前言由于 HashMap 是线程不安全的,无法运用到高并发的环境中,这时候线程安全的 ConcurrentHashMap 就有用武之地了。ConcurrentHashMap 是基于分段锁(synchronized)和 CAS 来保证线程安全的。一、重要常量和变量// 数组最大长度 = 2^30p
2021-11-23 14:31:55 564
原创 大白话讲HashMap源码
大白话讲HashMap源码前言一、HashMap源码 (JDK >=1.8)1. 一些重要常量和变量2.构造器3. put() 源码 (注:使用第一种构造方法进行 put )(1) hash() 算法(2) putVal (...)(3) resize() 扩容方法(4) treeifyBin(...) 树化方法 (调用后并不是一定会树化)二、`HashMap` 的面试难题1. 为什么 HashMap 数组长度必须要2的倍数?2. HashMap 扩容后原有元素怎么存放?3. HashMap 树化条件
2021-11-18 10:27:19 1121
原创 大白话讲并发编程之 CountDownLatch 源码
大白话讲并发编程之 CountDownLatch 源码一、什么是 CountDownLatch ?二、源码解析1.先看构造器2.await() 方法3.countDown() 方法总结一、什么是 CountDownLatch ?CountDownLatch 是 Doug Lea 写的一个并发工具类,其中的关键方法是 await() 和 countDown()。它有两个比较典型的应用:主线程等待其他线程任务完成后再执行。典型案例:服务启动时,会等一系列组件加载完后再执行;代码如下(示例)//
2021-11-12 15:20:13 266
原创 大白话讲并发编程之Semaphore源码
大白话讲并发编程之Semaphore源码,也就明白限流和降级是怎么回事了前言一、先看构造器二、acquire()方法三、release()方法结尾前言上一节分享了 ReentrantLock 这个独占锁后,那么接下来就分享 Semaphore 这个共享锁的源码,当然讲的还是公平锁。Semaphore这个类主要作用是用来作限流和降级;先说这个类怎么用; Semaphore semaphore = new Semaphore(3) for (int i = 0; i <
2021-11-11 14:55:06 284
原创 大白话讲ReentrantLock源码
ReentrantLock源码解析,再也不怕面试官问源码了什么是ReentrantLock第一步.创建ReentrantLock那么公平锁和非公平锁有什么区别呢?第二步.线程执行到lock()方法--公平锁功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流
2021-11-10 17:02:05 602
空空如也
idea 的git出现问题,看看能否解决一下
2021-12-06
为什么这个值被替换了,不应该先执行括号的吗
2021-11-23
java 的MVCC机制 有些小疑惑
2021-11-03
mysql怎么会出现这种结果!
2021-11-03
mysql 为什么大于后面字段不走索引,大于等于后面就会走?
2021-10-22
mysql score这个字段为什么还会走索引?
2021-10-15
MySQL为什么a,b,c三个字段都走了索引?
2021-10-14
jvm类加载的五步什么时候执行?
2021-10-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人