Thread que espera a otros

erkeko
15 de Noviembre del 2005
Hola a todos:
Estoy haciendo un programa de comunicaciones y en el thead principal creo dos threads que se encargan de realizar la conexión y otras tares muy lentas, mientras el principal avanza un poco el trabajo y luego se quede esperando hasta que se hayan terminado de ejecutar los dos threads secundaros.
¿Como debo realizarlo? Tengo entendido que debo usar los métodos wait() y notify(), pero no entiendo muy bien su funcionamiento cuando tengo tres hilos.
Muchas gracias

Eric Mignot
15 de Noviembre del 2005
Hola,

En efecto lo mejor es usar wait() y notify para hacerlo. Y para eso deberias empezar con leer la documentacion en linea de los thread en el seccion java.sun.com que se base sobre la synchronization sobre un objecto comun.

Pero si se trata de un codigo pequeno sin demasiado ambicion, podrias probar de usar una variable de classe (es decir static) cuya valor indica al primer thread el progreso de los otros. Por ejemplo :
- el primero la initializa a cero antes de arrancar los dos
- cada uno suma 1 a su valor al terminarse
- el primero espera a que llegue a la valor 2 para determinar que los dos otros han terminado sus tareas

! no olvidar hacer dormir el primero (sleep) durante la espera para dejar cpu a los otros !