Java - Hilos de ejecucción

 
Vista:
sin imagen de perfil

Hilos de ejecucción

Publicado por Carlos (25 intervenciones) el 27/12/2016 13:43:43
Hola!

Necesito ayuda, por favor, tengo que ejecutar dos hilos de forma simultanea y garantizar, cuando los dos terminen que se ejecute otra instrucción; es decir, se quieren comprobar dos cadenas, que sus longitudes son mayores de 10, una vez termine esta comprobación concatenarlas. Se pide comprobar la longitud de cada cadena desde un hilo de ejecución diferente, ejecutarlos simultáneamente y planificarlos de forma que se garantice que concatenación final.

He creado un metodo que comprueba la longitud de la cadena, y dos hilos que ejecutan este metodo de forma simultanea.
Yo creia que añadiendo el join(), se espera a que termine la ejecucción del hilo1 y el hilo2 para por ultimo ejecutar el 3 que es la concatenación, pero no espera.

¿Me podeis ayudar? Gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
Thread hilo=new Thread(()->{
 
    try {
        hilo1.start();
        hilo2.start();
        hilo1.join();
        hilo2.join();
 
      hilo3.start();
    } catch (InterruptedException ex) {
    }
});
hilo.start();
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

Hilos de ejecucción

Publicado por Tom (1831 intervenciones) el 27/12/2016 14:36:52
¿ Por qué piensas que join() no espera ?
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
sin imagen de perfil

Hilos de ejecucción

Publicado por Carlos (25 intervenciones) el 27/12/2016 16:21:49
Porque en lugar de por poner hilo3.start() probé a poner un system.out.println, imprimiendo los valores de la lista que se agregan en los anteriores hilos y si la cadena del hilo1 es más larga q la del segundo hilo, hay veces q no concatena, acaba primero el hilo2 y ejecuta lo siguiente...Osea q no espera. no sé porque.
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