![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码
jobey1995
希望有一天我可以用代码改变世界
展开
-
AQS之CountDownLatch源码解读
首先准备一个可以跑的Demo private final static int threadCount = 200; public static void main(String[] args) throws Exception { //1、创建线程池 ExecutorService exec = Executors.newCachedThreadPool...原创 2019-04-26 22:27:31 · 121 阅读 · 0 评论 -
通过源码参数聊聊ThreadPoolExecutor机制以及其四种线程池
ThreadPoolExecutor可以通过制定的一些参数来创建一个线程池,目前默认可以通过Executor来实例化四种线程池的执行器,简单的做一下说明: newFixThreadPool 创建一个固定长度的线程池,每当提交一个任务就创建一个线程,知道达到线程池的最大数量,这时线程池的规模将不再变化 newCacheTheadPool 创建一个可缓存的线程池,如果线程池的当...原创 2019-04-23 17:49:07 · 144 阅读 · 0 评论 -
AQS之CyclicBarrier源码解读
首先准备一个可以跑的Demo @Slf4j public class CyclicBarrierExample{ //1、实例化一个CycleBarrier private static CyclicBarrier barrier = new CyclicBarrier(5); public static void main(String[] args) throws...原创 2019-04-28 15:33:27 · 178 阅读 · 0 评论 -
聊一聊Atomic类为什么是原子性的
在此之前准备两个例子 Demo1: // 请求总数 public static int clientTotal = 5000; // 同时并发执行的线程数 public static int threadTotal = 200; public static AtomicInteger count = new AtomicInteger(0); ...原创 2019-05-09 21:37:05 · 1212 阅读 · 0 评论 -
今天我只看了ConcurrentHashMap的put方法
首先把那些恶心的变量解释一下 变量名称 含义 bincount table里目标索引链表的元素个数 f table里目标索引对应链表的头结点 n table的长度 i 目标索引 fh 头结点f的哈希值 tab table数组的副本 final V putVal(K key, ...原创 2019-06-17 13:29:09 · 2038 阅读 · 2 评论