HashMap,Hashtable,ConcurrentHashMap和synchronized Map 如何线程安全的使用HashMap

HashMap: 线程不安全,链表结构,效率高;

Hashtable : 线程安全,但效率低,因为是Hashtable是使用synchronized的,所有线程竞争同一把锁;

Synchronized Map: 线程安全,但效率低,一次性锁住整张表来保证线程安全,所以每次只能有一个线程来访问map。

ConcurrentHashMap:线程安全而且效率高,因为它包含一个segment数组,将数据分段存储,给每一段数据配一把锁。

          在理想状态下,ConcurrentHashMap 可支持16个线程执行并发写操作,及任意数量线程的读操作。

如何线程安全的使用HashMap

以下三种方式:

  • Hashtable
  • ConcurrentHashMap
  • Synchronized Map

  

猜你喜欢

转载自www.cnblogs.com/lgg20/p/12321427.html