Я относительно новичок в мире 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.
Как вы, наверное, знаете, это упражнение от моего профессора.
Я знаю, как запустить поток в Java, и я знаю, как теоретически работает весь этот поток, но я не могу найти решение для запуска отдельных потоков в этой рекурсивной функции.
Что нужно сделать в функции запуска?
Возможно
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();
Или я на неверном пути?