Я работаю, чтобы оптимизировать некоторую обработку файла CSV, поэтому пытаюсь ускорить реализацию Джексона. Итак, у меня есть:
List<T> testResults=new ArrayList();
Stream<T> testStream= Streams.stream(TestIterator);
testStream.parallel().forEach(p->testResults.add(p));
и вот я получаю:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 360145
at java.util.ArrayList.add(Unknown Source)
at xml_test.opencsv.App.lambda$1(App.java:85)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source)
at java.util.concurrent.CountedCompleter.exec(Unknown Source)
at java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.util.concurrent.ForkJoinTask.doInvoke(Unknown Source)
at java.util.concurrent.ForkJoinTask.invoke(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(Unkno
Есть идеи, что происходит? Если я уберу «параллель», он будет работать, но очень медленно.