目录

Java 并发容器

ConcurrentHashMap

并发安全版HashMap,java7中采用分段锁技术来提高并发效率,默认分16段。Java8放弃了分段锁,采用CAS,同时当哈希冲突时,当链表的长度到8时,会转化成红黑树。

CopyOnWriteArrayList

CopyOnWriteArraySet

ConcurrentLinkedQueue

基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部,当我们获取一个元素时,它会返回队列头部的元素。它采用cas算法来实现。

ConcurrentLinkedDeque

ConcurrentSkipListMap

ConcurrentSkipListSet

BlockingQueue

阻塞队列是一个支持两个附加操作的队列,这两个附加操作支持阻塞的插入和移除方法。

  • 支持阻塞的插入方法:当队列满时,队列会阻塞插入元素的线程,直到队列不满。
  • 支持阻塞的移除方法:当队列空时,获取元素的线程会等待队列变为非空。

常用于生产者和消费者场景,生产者是往队列里添加元素的线程,消费者是从队列里取元素的线程。

ArrayBlockingQueue

LinkedBlockingQueue

LinkedBlockingDeque

PriorityBlockingQueue

SynchronousQueue

LinkedTransferQueue

DelayQueue