Soy relativamente nuevo en el mundo de Java y tengo un problema que no entiendo.Uso de hilos y recursión en Java para calcular números de Fibonacci
tengo una clase (para obtener la fila de Fibonacci):
class Fib {
public static int f(int x){
if (x < 2)
return 1;
else
return f(x-1)+ f(x-2);
}
}
La tarea ahora es comenzar f (x-1) y f (x-2) cada uno en un hilo separado. Una vez con la implementación de la clase Thread y la otra con la implementación de Runnable. Como probablemente sepa, es un ejercicio de mi prof.
Sé cómo iniciar un subproceso en Java y sé cómo funciona todo esto en Thread teóricamente, pero no puedo encontrar una solución para iniciar Threads por separado en esta función recursiva.
¿Qué se debe hacer en la función de ejecución?
Probablemente
public void run(){
//int foo=start f(this.x-1)
//int bar=start f(this.x-2)
//return foo+bar?
}
Y cómo puede pegar I x en función de mi ejecutable? ¿Se ha pasado x al objeto en la creación?
Class Fib ...{
int x;
public ... run ...
public ... f(x)....
}
en el método principal
(new Fib(x)).start();
o estoy en un camino totalmente equivocado?
muchas gracias, esto me ayuda mucho a entender cómo funciona todo junto – evildead
Wow, eso es impresionantemente ineficiente. El número de subprocesos creados crece exponencialmente a medida que n aumenta. Nunca pensé en hacer eso. Sin embargo, existe el riesgo de que cuelgue la máquina antes de que pueda detener su proceso. –
Idealmente, estaría trabajando en un grupo de subprocesos de tamaño fijo o algo así, pero esos conceptos probablemente solo complicarían la respuesta. Esta es probablemente la solución más simple posible para el problema del PO, así que +1 para eso. –