Java - Threads encadenadas

 
Vista:

Threads encadenadas

Publicado por Fran (34 intervenciones) el 22/08/2001 20:40:20
Se que va un poco en contra de la esencia de un thread, pero mi aplicación así lo requiere. Necesito usar 3 threads, pero con la particularidad de que al terminar uno, el otro empieze. Lo que me sucede actualmente es que todos empiezan a la vez. Las líneas de código son sencillas :

thread1.start();
thread2.start();
thread3.start();

Entiendo que por la naturalez del thread cada una empieza de forma independiente, y sin esperar a que la otra acabe, pero me interesa que lo haga de esta manera.

Gracias
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

RE: Threads encadenadas

Publicado por Daniel (6 intervenciones) el 23/08/2001 12:01:52
Una manera de hacer esto de forma "elegante" es asignar una prioridad distinta a cada thread antes de hacer el start() utilizando el método setPriority(int newPriority). Da mayor prioridad al thread que quieras que se ejecute antes, y menos prioridad a los otros sucesivamente.

Otra manera de resolver tu problema es usando semáforos (synchronized de Java o tuyos propios), pero no te recomiendo este camino, porque trabajarías demasiado.

Saludos!
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

RE: Threads encadenadas

Publicado por Jon (68 intervenciones) el 23/08/2001 21:28:41
Prueba:

thread1.start();
thread1.join();
thread2.start();
thread2.join();
thread3.start();
thread3.join();
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