
Concurrent
Deegue
这个作者很懒,什么都没留下…
展开
-
ThreadLocal详解
ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。内部结构从上面的结构图,我们已经窥见ThreadLocal的核心机制:每个Thread线程内部都有一个Map。Map里面存储线程本地对象(k...原创 2019-05-14 19:35:02 · 2212 阅读 · 0 评论 -
Java基础 BlockingQueue阻塞队列汇总
BlockingQueue汇总:1、概念总览与介绍https://www.cnblogs.com/duanxz/p/3400003.html2、LinkedTransferQueuehttps://www.cnblogs.com/duanxz/p/3398446.html3、SynchronousQueue同步队列https://www.cnblogs.com/...原创 2019-04-08 11:34:33 · 242 阅读 · 0 评论 -
CyclicBarrier和CountDownLatch的用法与区别
前言CyclicBarrier和CountDownLatch这两个工具都是在java.util.concurrent包下,并且平时很多场景都会使用到。本文将会对两者进行分析,记录他们的用法和区别。CountDownLatchCountDownLatch是一个非常实用的多线程控制工具类,称之为“倒计时器”,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。CountDownL...原创 2019-05-15 18:02:49 · 10417 阅读 · 3 评论 -
ThreadPoolExecutor详解及线程池优化
前言ThreadPoolExecutor在concurrent包下,是我们最常用的类之一。无论是做大数据的,还是写业务开发,对其透彻的理解以及如何发挥更好的性能,成为了我们在更好的coding道路上必不可少的基础。为什么用线程池?如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一来会大大降低系统的效率。这就是线程池的目的了。线程池为线程生命周期的开销和资...原创 2019-05-17 19:33:43 · 13063 阅读 · 0 评论 -
LockSupport详解
前言LockSupport是concurrent包中一个工具类,不支持构造,提供了一堆static方法,比如park(),unpark()等。LockSupport中的主要成员及其加载时的初始化:不难发现,他们在初始化的时候都是通过Unsafe去获得他们的内存地址,这里也可以理解为C中的指针。UnsafeUnsafe类可以参考我之前写的文章:深入理解sun.misc.Unsafe原理...原创 2019-05-18 14:32:19 · 17343 阅读 · 3 评论