一、并发List
1、Collections.synchronizedList(List list);
2、CopyOnWriteArrayList
望文生义,当对象进行写操作时,复制该对象;若进行读操作,则直接返回结果,操作过程不需要同步。
核心思想:减少锁竞争。从而提高在高并发时的读取性能,但是它却在一定程度上牺牲了写性能。
适用场合:读多写少的高并发场合。
二、并发Set
1、Collections.synchronizedSet(Set<T> s)
2、CopyOnWriteArraySet:原理同CopyOnWriteArrayList
三、并发Map
1、Collections.synchronizedMap()
2、ConcurrentHashMap
专门为线程并发而设计的HashMap。它的get()操作是无锁的,它的put()操作的锁粒度又小于同步的HashMap。 因此它的整体性能优于同步的HashMap。
四、并发Queue
1、ConcurrentLinkedQueue:高性能队列
2、BlockingQueue:阻塞队列,功能主要在简化多线程间的数据共享。
主要实现有:(ArrayBlockingQueue和LinkedBlockingQueue)
ConcurrentLinkedQueue的性能要好于BlockingQueue。
五、并发Deque(Double-Ended Queue即双端队列)
Deque允许在队列的头部或者尾部进行出队和入队操作。
1、ConcurrentLinkedQueue
2、LinkedBlockingQueue
ConcurrentLinkedQueue的性能要高于LinkedBlockingQueue