ChronicleMap和parallelStream

时间:2017-09-24 10:14:46

标签: java performance chronicle-map

我正在尝试使用chronicleMap.parallelStream:

myChronicleMap.entrySet().parallelStream().forEach((entry) -> {
   process(entry); //heavy process 
}

我遇到以下异常。

  

java.lang.IllegalStateException:ChronicleMap ... Iterator只能从单个线程访问

知道如何使用chronicleMap和parallelStream吗? 感谢

1 个答案:

答案 0 :(得分:1)

如果编年史不支持并行流,那么你必须将其内容复制到地图实现中。

Map<?, ?> mapCopy = myChronicleMap.entrySet()
                                  .stream()
                                  .collect(Collectors.toMap(Entry::getKey, Entry::getValue));
mapCopy.entrySet().parallelStream().forEach(this::process);