Многопоточно посчитать сумму на java
Не знаком с многопоточностью. Надо подсчитать интеграл с помощью суммы на java. Пользователь выбирает точность и количество потоков. Задается количество -n, на которое разбивается отрезок (a, b).
Я думаю, будет какой-то класс Controller, который будет управлять потоками, раздавать им задачи. И слагаемые этой всей суммы будут постепенно наращивать общую переменную суммы в самом Controller, а уже посчитанные индексы будут где-то хранится в списке. В конце просто вывести сумму. Не знаю, как это реализовывать на java.
Вот как это сделать в одном потоке?
private double InFunction(double x){
return Math.sin(x);
}
public double calcIntegral(double a, double b, int n)
{
double result, h;
int i;
h = (b-a)/n; //Шаг сетки
result = 0;
for(i=1; i <= n; i++)
{
result += InFunction(a + h * i - h/2); //Вычисляем в средней точке и добавляем в сумму
}
result *= h;
return result;
}
Я уже сделал двумя способами: с помощью notify, wait и вторым способом - с помощью join