Hombre, si crees que va a ser útil...
Main:
Código C:
Ver originalpublic class Main extends Thread {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
claseQ cola = new claseQ();
Productor producer = new Productor(cola);
Consumidor consumer = new Consumidor(cola, producer);
producer.start();
consumer.start();
}
}
claseQ:
Código C:
Ver originalpublic class claseQ {
int id = 0;
public int get() throws InterruptedException {
return id;
}
public void put(int e) {
id = e;
}
Productor:
Código C:
Ver originalpublic class Productor extends Thread implements Runnable {
claseQ obj;
public Productor(claseQ obja) {
obj=obja;
}
public void run(){
for (int i = 0; 1 < 2; i++) {
obj.put(i);
System.out.println("Objeto introducido: "+i);
}
}
}
Consumidor:
Código C:
Ver originalpublic class Consumidor extends Thread implements Runnable {
claseQ obj;
public Consumidor(claseQ obja, Productor p) {
obj = obja;
}
public void run() {
for (int i = 0; 1 < 2; i++) {
System.out.println("Objeto obtenido: " + obj.get());
}
}
}
He quitado todas las movidas de waits, synchronizeds y notifys que había puesto porque ya las había probado y provocan siempre interbloqueo o excepción T.T