HashMap(局部变量使用)
线程不安全的,没有加锁
Collections.synchronizedMap
线程安全的,是一个加锁版本的HashMap,Map<String, String> m = Collections.synchronizedMap(new HashMap<>());
Hashtable
是线程安全的,方法都添加synchronized
ConcurrentHashMap(多线程高并发推荐使用)
线程安全的,内部使用(compareAndSwapInt)CAS进行插入,使用CAS保证线程安全
ConcurrentSkipListMap(多线程高并发有序的集合)
插入时也是使用compareAndSwapObject(CAS)保证线程安全的;查找使用跳表,所以效率很高;
ConcurrentSkipListMap<String,String> skip = new ConcurrentSkipListMap<>();