欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ConcurrentHashMap真的有必要吗

程序员文章站 2022-03-06 20:36:00
...

ConcurrentHashMap真的有必要吗,很多时候我们用ConcurrentHashMap来保证操作map的过程达到线程安全,

但是跟多的时候map是用来存储临时数据例如User信息

 

假设在一个单例类里面设置了一个共享变量map作为存储User的集合,

 

你还有一个方法是用来操纵map里面的user例如:

 

public void a(){
  User user=map.get("1");

  user.xxxxxxx

  Thread.sleep(1000*5);

  map.put("1",user);

}

 为了明显看到效果,加上了线程sleep 5秒,a方法是非线程安全的。

 

我想知道的是,在这种情况下,这个map是否是线程安全有什么关系?ConcurrentHashMap能保证put、get操纵达到线程安全,但是只能局限于自身,对于这个方法、业务来说打不到线程安全的要求,map就算是线程安全的又有什么意义?

 

我的意思就好像一个球队输了,就算其中一个球员表现很抢眼又有什么意义?你说呢?