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<>();

Map-LMLPHP

09-01 03:03