Java多线程进阶(四六)—— J.U.C之补遗:ThreadLocalRandom `ThreadLocalRandom`是在JDK1.7之后引入的一个类,为`Random`的一个子类,在多线程环境中相较于`Random`来说它会有更小的开销和争用。 2019-07-08 浏览(528) 评论(0) 阅读全文
Java多线程进阶(四五)—— J.U.C之executors框架:CompletionService实现 `CompletionService`是对于Task进行异步处理之后获取结果的Service,在开始本章节之前需要有`Future`和`FutureTask`及`Executor`(参见`ThreadPoolExecutor`)的相关知识。JDK中提供了`ExecutorCompletionService`作为`CompletionService`的默认实现,本章会以`ExecutorComple 2019-07-07 浏览(560) 评论(0) 阅读全文
Java多线程进阶(四四)—— J.U.C之executors框架:Fork/Join框架实现 我们深入F/J框架的实现细节,看看ForkJoinPool线程池究竟有何特殊之处,F/J框架的整个任务调度流程又是怎样的。 2018-11-16 浏览(3,578) 评论(0) 阅读全文
Java多线程进阶(四三)—— J.U.C之executors框架:Fork/Join框架原理 算法领域有一种基本思想叫做分治,所谓分治就是将一个难以直接解决的大问题,分割成一些规模较小的子问题,以便各个击破,分而治之。基于“分治”的思想,J.U.C在JDK1.7时引入了一套Fork/Join框架。 2018-11-15 浏览(6,059) 评论(0) 阅读全文
Java多线程进阶(三六)—— J.U.C之collections框架:DelayQueue DelayQueue是JDK1.5时,随着J.U.C包一起引入的一种阻塞队列,它实现了BlockingQueue接口,底层基于已有的PriorityBlockingQueue实现: 2018-11-08 浏览(4,992) 评论(0) 阅读全文
Java多线程进阶(三五)—— J.U.C之collections框架:SynchronousQueue SynchronousQueue是JDK1.5时,随着J.U.C包一起引入的一种阻塞队列,它实现了BlockingQueue接口,底层基于栈和队列实现 2018-11-07 浏览(1,932) 评论(1) 阅读全文
Java多线程进阶(二七)—— J.U.C之collections框架:CopyOnWriteArrayList 大多数业务场景都是一种“读多写少”的情形,CopyOnWriteArrayList就是为适应这种场景而诞生的。 2018-10-29 浏览(1,338) 评论(2) 阅读全文
Java多线程进阶(二六)—— J.U.C之collections框架:ConcurrentSkipListSet ConcurrentSkipListSet,是JDK1.6时J.U.C新增的一个集合工具类,顾名思义,它是一种SET类型。 2018-10-28 浏览(2,154) 评论(0) 阅读全文
Java多线程进阶(二五)—— J.U.C之collections框架:ConcurrentSkipListMap J.U.C提供了基于ConcurrentNavigableMap接口的一个实现——ConcurrentSkipListMap。ConcurrentSkipListMap可以看成是并发版本的TreeMap,但是和TreeMap不同是,ConcurrentSkipListMap并不是基于红黑树实现的,其底层是一种类似跳表(Skip List)的结构。 2018-10-27 浏览(2,244) 评论(0) 阅读全文
Java多线程进阶(二四)—— J.U.C之collections框架:ConcurrentHashMap扩容 通过上一篇文章——ConcurrentHashMap原理(1),相信读者对ConcurrentHashMap的基本原理有了一个初步认识,但是上一篇中还有一个遗留问题没有讨论到,那就是ConcurrentHashMap的扩容和数据迁移。本文中,我们将会对这两个问题进行讨论。 2018-10-26 浏览(5,557) 评论(0) 阅读全文