Java 8中针对一个编写者和更多阅读者线程的ConcurrentHashMap实现

问题描述

我有一个parallelHashMap,其中我的一个线程正在连续写入该映射,同时有300多个线程正在从该映射中读取值。

问题:

  1. 在这种多线程方案中,并发HashMap数据结构是最好的吗?如果不是,那么哪一个更快,并会带来更好的性能
  2. 要实现这种情况,有没有比任何设计模式更好的方法了。
  3. 在系统中运行这些线程数是个好主意吗?
  4. 是否还有其他声明consurrentHashMap的方法,以便获得最佳性能

示例:我们可以如下声明具有不同参数的map。目前,我正在使用最后一个选项。

1.    Map<String,Integer> map = new ConcurrentHashMap<String,Integer>(initialCapacity,loadFactor,concurrencyLevel);
2.    Map<String,loadFactor);
3.    Map<String,Integer>();

注意:

  1. 映射的大小等于读取线程数。因此,如果从我的地图读取300个线程,则地图的大小为300(包含300个键值对值)。
  2. 具有32 GB RAM的64位操作系统。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)