-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
58 lines (34 loc) · 1.91 KB
/
Copy pathSolution.java
File metadata and controls
58 lines (34 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//His disciples said unto him, Lo, now speakest thou plainly, and speakest no proverb. (John 16:29)
package com.javarush.task.task28.task2813;
import java.util.concurrent.*;
/*
FutureTask
*/
public class Solution {
private static final ExecutorService threadpool = Executors.newFixedThreadPool(4);
private static final int n = 16;
public static void main(String args[]) throws InterruptedException, ExecutionException {
FactorialCalculator task = new FactorialCalculator(n);
System.out.println("Submitting Task ...");
Future future = threadpool.submit(task);
System.out.println("Task was submitted successfully");
while (!future.isDone()) {
System.out.println("Task is not completed yet....");
Thread.sleep(1);
}
System.out.println("Task is completed, let's check the result");
long factorial = (long) future.get();
System.out.println("Factorial of " + n + " is : " + factorial);
threadpool.shutdown();
}
}
/*
FutureTask
Класс FactorialCalculator предназначен для вычисления факториала числа переданного в его конструктор в качестве параметра. К сожалению, он реализован некорректно и тебе необходимо это исправить.
Внимательно разбери метод main класса Solution.
Требования:
1. Класс FactorialCalculator должен поддерживать интерфейс Callable.
2. Метод call класса FactorialCalculator должен возвращать результат выполнения метода factorial.
3. Метод call класса FactorialCalculator должен быть публичным.
4. Поле number класса FactorialCalculator должно быть приватным.
*/