14个Java并发容器,你用过几个?
不考虑多线程并发的情况下,容器类一般使用 ArrayList、HashMap 等线程不安全的类,效率更高。在并发场景下,常会用到 ConcurrentHashMap、ArrayBlockingQueue 等线程安全的容器类,虽然牺牲了一些效率,但却得到了安全。 上面提到的线程安全容器都在 java.util.concurrent 包下,这个包下并发容器不少,今天全部翻出来鼓捣一下。 仅做简单介绍,后续再分别深入探索。 ConcurrentHashMap:并发版 HashMap CopyOnWriteArrayList:并发版 ArrayList CopyOnWriteArraySet:并发 Set ConcurrentLinkedQueue:并发队列 (基于链表) ConcurrentLinkedDeque:并发队列 (基于双向链表) ConcurrentSkipListMap:基于跳表的并发 Map ConcurrentSkipListSet:基于跳表的并发 Set ArrayBlockingQueue:阻塞队列 (基于数组) LinkedBlockingQueue:阻塞队列 (基于链表) LinkedBlockingDeque:阻塞队列 (基于双向链表) PriorityBlockingQueue:线程安全的优先队列 SynchronousQueue:读写成对的队列