
La comunicación entre hilos la podemos ver como un mecanismo de auto-sincronización, que consiste en logar que un hilo actúe solo cuando otro ha concluido cierta actividad (y viceversa).
Java soporta comunicación entre hilos mediante los siguientes métodos de la clase java.lang.Object
.
wait()
. Detiene el hilo (pasa a "no ejecutable"), el cual no se reanudará hasta que otro hilo notifique que ha ocurrido lo esperado.wait(long tiempo)
. Como el caso anterior, solo que ahora el hilo también puede reanudarse (pasar a "ejecutable·) si ha concluido el tiempo pasado como parámetro.notify()
. Notifica a uno de los hilos puestos en espera para el mismo objeto, que ya puede continuar.notifyAll()
. Notifica a todos los hilos puestos en espera para el mismo objeto que ya pueden continuar.