Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/03/2011, 07:41
Avatar de Stoyicker
Stoyicker
 
Fecha de Ingreso: marzo-2011
Mensajes: 9
Antigüedad: 14 años
Puntos: 1
Productor/Consumidor

Buenas, necesito implementar el problema concurrente de Productor/Consumidor mediante synchronized, wait() y notify().

Debe haber:

Una clase productor.
Una clase consumidor.
Una claseQ, especificada más abajo, y que puede ser modificada de ser necesario (añadiendo syncrhonized, wait() o notify() de hacer falta).
Una clase Main que crea tres objetos, una claseQ, un productor y un consumidor.

claseQ:

public class claseQ {

int id = 0;

public int get() throws InterruptedException {
return id;
}

public void put(int e) {
id = e;
}
}

Acción de producir:

obj.put(i);
System.out.println("Objeto introducido: "+i);

Acción de consumir:

System.out.println("Objeto obtenido: " + obj.get());

Lo he intenado millones de veces pero las pocas que no me sale IlegalMonitorStatException no se sincronizan; el productor va tremendamente más rápido que el consumidor. ¿Puede alguien escribir las clases main, productor y consumidor (y claseQ, si hiciese falta editarla), para ver si con la solución lo veo más claro?