Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

Ejercicio Java GeneraNumero/PresentaNumero. Solucion 2

Para esta solución, cumplimos con las normas de orientación a objetos trasladando las responsabilidades a sus clases.

En efecto, quien tiene la responsabilidad de mantener la integridad de datos, es nuestra clase buffer, por lo que ella se deberá encargar de todo el control de sincronización.

Deberemos modificar el get y el set, haciéndolos synchronized y controlado la integridad, por lo que queda así:

Lo único que hemos hecho es trasladar los bucles de espera a los métodos get y set, y gestionar las esperas sobre este objeto (this.wait(), this.notifyAll())

Es muy importante que recordéis el lanzar el notifyAll() antes de realizar el return, ya que de otra manera, los demás hilos que estuvieran en wait, quedarían esperando por siempre….

La clase GeneraNumero

Dado que la sincronización la soporta Buffer, esta clase no se tiene que preocupar de nada

La clase PresentaNumero

Lo mismo para esta clase

Y por último, la clase Main, no es necesario modificarla. La dejamos tal y como estaba antes:

Igual que lo comentado para la solucion1, dado que no hemos previsto la finalización, deberemos abortar el programa cuando queramos. En eclipse lo hariamos asi:

 

Deja un comentario

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 3.236.101.52
Proxy: 3.236.101.52
Remote host: ec2-3-236-101-52.compute-1.amazonaws.com
Remote port: 34648
** 3.236.101.52, 172.70.134.138