diff --git a/.gitignore b/.gitignore
index 6366460f..7465934e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
.idea/*
+*.skill
*.iml
target/*
diff --git a/pom.xml b/pom.xml
index 38f7f24d..66c1a9a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
1.0-SNAPSHOT
- 11
+ 17
UTF-8
UTF-8
3.1.1
diff --git a/src/main/java/core/basesyntax/MyTask.java b/src/main/java/core/basesyntax/MyTask.java
index f68b8749..0a7d5122 100644
--- a/src/main/java/core/basesyntax/MyTask.java
+++ b/src/main/java/core/basesyntax/MyTask.java
@@ -3,6 +3,7 @@
import java.util.concurrent.RecursiveTask;
public class MyTask extends RecursiveTask {
+ public static final int MAX = 10;
private int startPoint;
private int finishPoint;
@@ -13,7 +14,18 @@ public MyTask(int startPoint, int finishPoint) {
@Override
protected Long compute() {
- // write your code here
- return null;
+ int length = finishPoint - startPoint; // Это и есть ваш workLoad
+ if (length <= MAX) {
+ long sum = 0;
+ for (int i = startPoint; i < finishPoint; i++) {
+ sum += i;
+ }
+ return sum;
+ }
+ int middle = startPoint + (finishPoint - startPoint) / 2;
+ MyTask leftTask = new MyTask(startPoint, middle);
+ MyTask rightTask = new MyTask(middle, finishPoint);
+ leftTask.fork(); // Запускаем одну задачу асинхронно
+ return rightTask.compute() + leftTask.join();
}
}