Я относительно новый в мире Java, и у меня есть проблема, которую я не понимаю.
У меня есть класс (для получения строки фибоначчи):
class Fib {
public static int f(int x){
if ( x < 2 )
return 1;
else
return f(x-1)+ f(x-2);
}
}
Теперь задача состоит в том, чтобы запустить f (x-1) и f (x-2) каждый в отдельном потоке. Один раз с реализацией класса Thread, а другой с внедрением Runnable. Как вы, наверное, знаете, это упражнение от моего профессора.
Я знаю, как начать Thread в Java, и я знаю, как теоретически работает эта целая статья Thread, но я не могу найти решение для запуска отдельных потоков в этой рекурсивной функции.
Что нужно сделать в функции запуска?
Возможно
public void run(){
//int foo=start f(this.x-1)
//int bar=start f(this.x-2)
//return foo+bar?
}
И как можно вставить x в мою исполняемую функцию? Является ли x переданным в объект при создании?
Class Fib ...{
int x;
public ... run ...
public ... f(x)....
}
в основном методе
(new Fib(x)).start();
Или я на совершенно неправильном пути?