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(); } }