![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC
阿萨德执行
这个作者很懒,什么都没留下…
展开
-
多线程-JUC学习-线程池-线程池源码分析
1 内部状态 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); private static final int COUNT_BITS = Integer.SIZE - 3; private static final int CAPACITY = (1 << COUNT_BITS) - 1; // runState is stored in the high-o原创 2020-07-01 10:20:02 · 270 阅读 · 0 评论 -
多线程-JUC学习-线程池-线程池基本原理
1. 理解线程池基本原理1.1 线程池是用来干嘛的?如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。线程池使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务。1.2 使用线程池的好处降低资源消耗。重复利用已创建线程,降低线程创建与销毁的资源消耗。 提高响应效率。任务到达时,不需等待创建线程就能立即执行。 提高线程可管理性。 防止服务器过载。内存溢出...原创 2020-06-30 15:34:08 · 163 阅读 · 0 评论 -
多线程-JUC学习-JUC集合-BlockingQueue
阻塞队列 BlockingQueuejava.util.concurrent 包里的 BlockingQueue 接口表示一个线程放入和提取实例的队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。2)支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空BlockingQueue 用法BlockingQueue ...原创 2020-06-05 18:25:51 · 182 阅读 · 0 评论 -
多线程-JUC学习-JUC集合-Map
ConcurrentHashMap纸质版深入了解了1.8的原理。此处不进行整理。后面有时间加上1.ConcurrentSkipListMap1.1 ConcurrentSkipListMap介绍ConcurrentSkipListMap是线程安全的有序的哈希表,适用于高并发的场景。 ConcurrentSkipListMap和TreeMap,它们虽然都是有序的哈希表。但是,第一,它们的线程安全机制不同,TreeMap是非线程安全的,而ConcurrentSkipListMap是线程安全的。第二原创 2020-06-05 15:10:08 · 213 阅读 · 0 评论 -
多线程-JUC学习-JUC集合-List和Set
1. CopyOnWriteArrayList1.1 CopyOnWriteArrayList介绍它相当于线程安全的ArrayList。和ArrayList一样,它是个可变数组;但是和ArrayList不同的时,它具有以下特性:它最适合于具有以下特征的应用程序:List 大小通常保持很小,只读操作远多于可变操作,需要在遍历期间防止线程间的冲突。 它是线程安全的。 因为通常需要复制整个基础数组,所以可变操作(add()、set() 和 remove() 等等)的开销很大。 迭代器支持hasN原创 2020-06-05 14:59:29 · 328 阅读 · 0 评论 -
多线程-JUC学习-JUC集合-框架
1. List和SetJUC集合包中的List和Set实现类包括:CopyOnWriteArrayList,CopyOnWriteArraySet和ConcurrentSkipListSet。ConcurrentSkipListSet稍后在说明Map时再说明,CopyOnWriteArrayList 和 CopyOnWriteArraySet的框架如下图所示:CopyOnWriteArrayList相当于线程安全的ArrayList,它实现了List接口。CopyOnWriteArrayLi..原创 2020-06-05 14:44:27 · 201 阅读 · 0 评论