Вычисление суммы в параллельном потоке работает медленнее, чем последовательная версия в java
Я узнал, что java предоставляет параллельные потоки для легкого использования нескольких потоков. Поэтому я попытался вычислить сумму массива как последовательно, используя цикл for, так и с помощью параллельного потока.
Но результат, который я получил, не удовлетворяет. Вот мой код=
public static void main(String[] args) { int arr[]=new int[10000]; for(int i=0;i<10000;i++) arr[i]=i; int sum=0; //Sequential Sum long startTime=System.nanoTime(); for(int i=0;i<10000;i++) sum+=arr[i]; long seqTime=(System.nanoTime()-startTime); sum=0; //Parallel Sum Using Stream startTime=System.nanoTime(); sum=Arrays.stream(arr) .parallel() .sum(); long parTime=(System.nanoTime()-startTime); System.out.println(parTime-seqTime); // parallel - sequential }
Выход :
15802200
Я думаю, что выход должен быть отрицательным, так как параллельное время должно быть меньше последовательного времени.
Что я уже пробовал:
Я попытался найти, сталкивался ли кто-то с этой проблемой, но не смог связать ни одну проблему конкретно с моей.