摘要: 前言 前面介绍了优先级队列PriorityBlockingQueue,顺带也说了一下PriorityQueue,两者的实现方式是一模一样的,都是采用基于数组的平衡二叉堆实现,不论入队的顺序怎么样,take、poll出队的节点都是按优先级排序的。但是PriorityBlockingQueue/Prio 阅读全文
posted @ 2019-01-30 21:26 莫待樱开春来踏雪觅芳踪 阅读(5045) 评论(0) 推荐(2)
摘要: 前言 接下来继续BlockingQueue的另一个实现,优先级阻塞队列PriorityBlockingQueue。PriorityBlockingQueue是一个无限容量的阻塞队列,由于容量是无限的所以put等入队操作其实不存在阻塞,只要内存足够都能够立即入队成功,当然多个入队操作的线程之间还是存在 阅读全文
posted @ 2019-01-29 19:34 莫待樱开春来踏雪觅芳踪 阅读(1102) 评论(0) 推荐(0)
摘要: 前言 比起ArrayBlockingQueue,LinkedBlockingQueue应该是最被大家常用的阻塞队列,LinkedBlockingQueue是基于链表的一种可选容量的阻塞队列,也就是说,在构造LinkedBlockingQueue实例的时候,你可以像ArrayBlockingQueue 阅读全文
posted @ 2019-01-26 12:40 莫待樱开春来踏雪觅芳踪 阅读(1865) 评论(0) 推荐(0)
摘要: 引言 作为BlockingQueue最常见的实现类之一,ArrayBlockingQueue是通过数组实现的FIFO先进先出有界阻塞队列,它的大小在实例被初始化的时候就被固定了,不能更改。该类支持一个可选的公平策略,用于被阻塞等待的线程获取独占锁的排序,因为ArrayBlockingQueue内部的 阅读全文
posted @ 2019-01-24 20:26 莫待樱开春来踏雪觅芳踪 阅读(913) 评论(0) 推荐(2)
摘要: 概述 接下来开始学习java.util.concurrent包中一些Collection集合的子类,关于Map的一些子类将在这些子类完成之后再开始学习。下图是Java并发包中关于Collection接口的一些实现的关系类图,当然为了简化复杂度,我没有就所有的父子关系都列出来,而是仅仅就一些特殊的关系 阅读全文
posted @ 2019-01-17 20:45 莫待樱开春来踏雪觅芳踪 阅读(545) 评论(0) 推荐(0)
摘要: 前言 承接上文Java并发包同步工具之Phaser,讲述了同步工具Phaser之后,搬家博客到博客园了,接着未完成的Java并发包源码探索,接下来是Java并发包提供的最后一个同步工具Exchanger。 Java并发包中的Exchanger由来已久,从JDK1.5就存在了,但是到了JDK8实现方式 阅读全文
posted @ 2018-12-10 17:40 莫待樱开春来踏雪觅芳踪 阅读(559) 评论(0) 推荐(0)