物理上只有两种,连续存储型的:数组;和跳转型的:链表。
Vector、HashTable每个方法都加的synchronized锁
SynchronizedHashMap是在方法中加的synchronized同步块
ConcurrentHashMap用的CAS
三者的性能差异不是绝对的,需要根据具体的业务场景进行测试
CopyOnWriteList适用于读操作特别多,写操作少的情况
Queue -> List(两者的区别)
Queue提供了对线程友好的API offer peek poll
BlockingQueue 提供了put take (阻塞的方法,用于实现生产者、消费者)
Disruptor(单机)
环形数组
无锁,高并发,使用环形Buffer,直接覆盖(不用清除)旧的数据,降低GC频率
实现了基于事件的生产者消费者模式