容器最开始的是vector和hashTable,最初设计如下,所有的方法都是使用syschronized来做同步的
后来,发现在大多数情况下,我们在使用的时候其实是单线程使用,所以不需要同步,于是又有了arrayList和hashMap,完全没有加锁
后期又有了Collections.synchronized.....类型的容器,如下图所示:
它可以实现将普通容器转化为同步容器,和hashtale及vector相比,基本没什么区别,也是加了syschronized锁
写入:一般情况下,hashtable和hashmap,syschroizedHashmap区别不大,但是都高于ConcurrentHashMap。
读取:一般情况下,hashtable和hashmap,syschroizedHashmap区别不大,但是都低于ConcurrentHashMap。
原文:https://www.cnblogs.com/baierhu/p/14879350.html