ConcurrentSkipListMap是基于跳表实现,跳表是一个随机化的数据结构,实质是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。调表不仅能提高搜索性能,同时也能提高插入和删除操作的性能。 其继承关系如下: 主要属性public class ...
WeakHashMap
WeakHashMap是一种弱引用map,内部key会存储为弱引用,当JVM GC时 若这些key没有强引用存在时就会被gc回收,下次当我们操作map时会将对应的Entry这个删除掉,基于这个特性,WeakHashMap特别适合做缓存。其继承关系如下: 主要属性public class WeakH ...
CopyOnWriteArrayList
CopyOnWriteArrayList
是ArrayList
的线程安全版本,通过使用重入锁在添加、修改数据时加锁复制一份原始数组更新完数据后再替换原始数组,可见其比较适合读多写少的场景。
ConcurrentLinkedQueue
ConcurrentLinkedQueue
是基于链表的无界队列,队列中数据遵循FIFO,不允许使用null值。从ConcurrentLinkedQueue
的类继承关系如下图:
可看出其实现了Queue
接口但没有实现BlockingQueue
故ConcurrentLinkedQueue
不是阻塞队列,不能用于线程池中。