物理上只有两种,连续存储型的:数组;和跳转型的:链表。

Vector、HashTable每个方法都加的synchronized锁

SynchronizedHashMap是在方法中加的synchronized同步块

ConcurrentHashMap用的CAS

三者的性能差异不是绝对的,需要根据具体的业务场景进行测试

CopyOnWriteList适用于读操作特别多,写操作少的情况

Queue -> List(两者的区别)

Queue提供了对线程友好的API offer peek poll

BlockingQueue 提供了put take (阻塞的方法,用于实现生产者、消费者)

Disruptor(单机)

环形数组

无锁,高并发,使用环形Buffer,直接覆盖(不用清除)旧的数据,降低GC频率

实现了基于事件的生产者消费者模式