如何解决 HashMap 线程不安全的问题呢?

如何解决 HashMap 线程不安全的问题呢?
Java 中有 HashTable、Collections.synchronizedMap、以及 ConcurrentHashMap 可以实现线程安全的 Map。
● HashTable 是直接在操作方法上加 synchronized 关键字,锁住整个table数组,粒度比较大;
● Collections.synchronizedMap 是使用 Collections 集合工具的内部类,通过传入 Map 封装出一个 SynchronizedMap 对象,内部定义了一个对象锁,方法内通过对象锁实现;
● ConcurrentHashMap 在 jdk1.7 中使用分段锁,在 jdk1.8 中使用 CAS+synchronized。

你可能感兴趣的:(集合,java,jvm,集合,HashMap)