一、map/set的选择
无并发条件下:
HashMap
TreeMap
LinkedHashMap
并发量比较小的条件下:
Hashtable
Collections.synchronized()
并发量比较大的条件下:
ConcurrentHashMap (无序高并发)
ConcurrentSkipListMap (有序高并发)
二、队列
无并发条件下:
ArrayList
LinkedList
并发量比较小的条件下:
Vector
Collections.synchronize()
并发量比较大的条件下:
Queue
ConcurrentLinkedQueue
BlockingQueue
LinkedBlockingQueue (无界)
ArrayBlockingQueue (有界)
TransferQueue (直接交给消费者线程执行,无消费者线程则阻塞)
SynchronizedQueue (容量为0)
DelayQueue (定时)
CopyOnWriteList (写少读多)