Назад к вопросам
Альфа-Банк
Junior — Middle
66
Почему при вычислении суммы чисел от 1 до 100 использование параллельных потоков быстрее, чем последовательных?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Использование параллельных потоков при вычислении суммы чисел от 1 до 100 может быть быстрее, чем последовательное выполнение, по следующим причинам:
- Распараллеливание работы. Задача делится на несколько частей, которые выполняются одновременно на разных ядрах процессора.
- Сокращение времени ожидания. Вместо последовательного сложения всех чисел, каждый поток суммирует свою часть, а затем результаты объединяются.
Однако стоит учитывать, что для такой простой задачи накладные расходы на создание и управление потоками могут перевесить выигрыш, особенно для небольших диапазонов.
Пример на Java с использованием параллельных стримов:
import java.util.stream.IntStream;
public class SumExample {
public static void main(String[] args) {
int sumSequential = IntStream.rangeClosed(1, 100).sum();
int sumParallel = IntStream.rangeClosed(1, 100).parallel().sum();
System.out.println("Последовательная сумма: " + sumSequential);
System.out.println("Параллельная сумма: " + sumParallel);
}
}
В этом примере параллельный стрим разбивает диапазон на части, суммирует их в отдельных потоках и объединяет результаты, что может ускорить вычисление на многоядерных системах.