1. 对于Map/Set的使用
(1)非并发
- HashMap
- TreeMap
- LinkHashedMap
(2)不复杂的、并发量低的并发
- HashTable
- Collections.sychronizedXXX
(3)复杂的、并发量高的并发
- ConcurrentHashMap //不需要排序的
- ConcurrentSkipListMap //需要排序的
2.队列的使用
(1)非并发
- ArrayList
- LinkedList
(2)不复杂的、并发量低的并发
- Collections.sychronizedXXX
- Vector
(3)复杂的、并发量高的并发
- ConcurrentLinkedQueue
- CopyOnWriteList
- 写时复制一份,写进新的这份中,如果与此同时发生了读,就读之前那份,写的非常少读的非常的多时用
- BlockingQueue
- LinkedBlockingQueue(无界队列
- ArrayBlockingQueue(有界队列
- TransferQueue(阻塞执行
- SynchronousQueue(特殊的TransferQueue,容量0,put约等于TransferQueue的transfer
- DelayQueue
- 队列中的元素要实现Delayed接口,Delayed接口继承了Comparable接口,需要自己设置队列中的等待时间,到达时间之后才可取出