Java - Manejo de Hilos

   
Vista:

Manejo de Hilos

Publicado por Edgar Andrey (2 intervenciones) el 07/09/2014 22:42:15
Hola buenas tardes, quería hacerles una consulta debido a que soy nuevo usando hilos

Estoy creando un pequeño proyecto de unas carreras, tengo una clase principal, una clase vista llamada EjemploHilos, una clase llamada MiHilo que es donde los personajes van a correr y por ultimo la clase tiempo que me calcula el tiempo luego de recorrer ciertos espacios.

Las clases MiHilo y Tiempo heredan de la clase Thread pero quiero que la clase tiempo me calcule cuanto se demora en llegar a x distancia, lo que hice fue dentro del hilo MiHilo agregué la clase Tiempo para poder saber a que distancia iba a calcular el tiempo, pero hay un problema y es que asi termine la carrera el me sigue calculando el tiempo, entonces mi pregunta es, ¿se puede poner un hilo dentro de otro hilo? les dejo el código para que me den una mano.

Gracias por su tiempo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Manejo de Hilos

Publicado por Pedro (81 intervenciones) el 11/09/2014 11:58:06
En Java nada se pone dentro de nada aunque se suela decir eso. Un objeto puede contener la referencia a otro objeto pero no está dentro.

Usas el método stop() y no deberías. De hecho te debe salir como "deprecated". Los hilos deben terminar de forma natural, es decir cuando el método run() ejecuta la última instrucción que tenga en su cuerpo.

Cuando inicias un hilo, es decir, cuando usas el método start(), se inicia otra secuencia de ejecución independiente. Si el hilo que lo invoca se acaba, el invocado seguiría funcionando sin problema. De hecho el método main es un hilo y puede acabar mucho antes que otros hilos de tu aplicación.

En resumen, si quieres que un hilo pare, agrega una condición que lo saque del bucle.

Una cosa que no tiene que ver con la pregunta pero que he visto en tu código:

1
2
3
4
5
6
7
8
9
if(distance == 0){//inicia a contar el tiempo   
            tiempo1.setText(""+i);
         }else if(distance == 100) {
            tiempo2.setText(tiempo1.getText());
            break;
         }else if(distance == 400) {
           tiempo3.setText(tiempo1.getText());
           break;
 }

¿Por qué usas break dentro de los else if?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Manejo de Hilos

Publicado por Edgar Andrey (2 intervenciones) el 11/09/2014 21:21:21
Hola muchas gracias por contestar, en realidad estaba desperado y decidí poner break para saber que hacia xD disculpen la torpeza,,aaa bueno ya entendí muchas gracias por la respuesta saludos, luego intento poner el codigo que pueda solucionarlo por si alguno necesita el code ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar