java:通过多个线程向地图添加值(可能吗?)

Omu*_*Omu 1 java multithreading synchronization

多个线程同时向Map添加元素是否安全?
就像10个线程在同一时间向Map添加元素一样,Map是10个元素还是1个?

更新:我不需要迭代这个地图,我只需要按键添加,删除和获取元素

cle*_*tus 11

有几种方法可以解决这个问题:

  1. 用一个Hashtable.通常不建议这样做.Hashtable早于Java 1.2的Java集合框架,但它put()get()方法 synchronized ;
  2. 包裹你MapCollections.synchronizedMap()(这是(1)的更好的版本);
  3. 用一个ConcurrentHashMap; 要么
  4. 实现自己的同步方案(不推荐).


Boz*_*zho 5

检查ConcurrentHashMap是否适合您的情况.