Безопасно ли использовать массивы в parallelStream? Речь идет о заполнении массива и обращениях к элементам.
int range = 1000000;
int[] arr1 = new int[range];
int[] arr2 = new int[range];
// заполнение массивов
IntStream.range(0, range).parallel()
.forEach(i -> {
arr1[i] = method1(i);
arr2[i] = method2(i);
});
// обращение к элементам
double sum = IntStream.range(0, range).parallel()
.mapToDouble(i -> {
return Math.min(arr1[i]/arr2[i], 0d);
})
.reduce(0, Double::sum);
Потокобезопасно ли делать так?