Está en la página 1de 1

Ejercicios de concurrencia. Boletn 1.

Ejercicio 1
Construya una clase de objetos Java llamada Semforo con los mtodos subir() y bajar() y que encapsule la lgica de control de concurrencia de un semforo.

Ejercicio 2
Construya una clase de objetos Java llamada Buzon con los mtodos void escribir(Object msg) y Object leer() que encapsule la lgica de un buzn de mensajes. Los mensajes sern objetos (clase Object). La capacidad de almacenamiento del buzn estar limitado por Buzon.MAX_MENSAJES. Si se intenta retirar un mensaje de un buzn vaco, el hilo que llama al mtodo leer() quedar suspendido hasta que exista algn mensaje disponible. Si se intenta escribir un mensaje en un buzn que ya ha alcanzado su capacidad mxima, el hilo que llama al mtodo escribir() quedar suspendido hasta que se retire algn mensaje del buzn.

Ejercicio 3
Modifique la clase construida en el anterior ejercicio, de manera que cada mensaje tenga adems un identificador numrico comprendido entre 1 y Buzon.ID_MAX, pudindose establecer este valor en el constructor de la clase. De esta manera, los mtodos leer y escribir admiten como primer parmetro el identificador del mensaje, de forma que el mtodo void escribir(int id, Object msg) guarda en el buzn el mensaje msg asociado al identificador id, y el mtodo Object leer (int id) lee del buzn un mensaje asociado al identificador id. Si no hay ningn mensaje con dicho identificador, el hilo que llama a leer() se suspender hasta que se escriba algn mensaje asociado a dicho identificador. leer(0) significa que se pretende leer cualquier mensaje independientemente de su identificador asociado.

También podría gustarte