Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/03/2011, 08:08
Avatar de Stoyicker
Stoyicker
 
Fecha de Ingreso: marzo-2011
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Productor/Consumidor

Hombre, si crees que va a ser útil...

Main:

Código C:
Ver original
  1. public class Main extends Thread {
  2.  
  3.     /**
  4.      * @param args the command line arguments
  5.      */
  6.     public static void main(String[] args) {
  7.         claseQ cola = new claseQ();
  8.         Productor producer = new Productor(cola);
  9.         Consumidor consumer = new Consumidor(cola, producer);
  10.         producer.start();
  11.         consumer.start();
  12.     }
  13. }

claseQ:

Código C:
Ver original
  1. public class claseQ {
  2.  
  3.     int id = 0;
  4.  
  5.     public int get() throws InterruptedException {
  6.         return id;
  7.     }
  8.  
  9.     public void put(int e) {
  10.         id = e;
  11.     }

Productor:

Código C:
Ver original
  1. public class Productor extends Thread implements Runnable {
  2.  
  3.     claseQ obj;
  4.  
  5.     public Productor(claseQ obja) {
  6.         obj=obja;
  7.     }
  8.  
  9.     public void run(){
  10.     for (int i = 0; 1 < 2; i++) {
  11.             obj.put(i);
  12.             System.out.println("Objeto introducido: "+i);
  13.         }
  14.     }
  15. }

Consumidor:

Código C:
Ver original
  1. public class Consumidor extends Thread implements Runnable {
  2.  
  3.     claseQ obj;
  4.  
  5.     public Consumidor(claseQ obja, Productor p) {
  6.         obj = obja;
  7.     }
  8.  
  9.     public void run() {
  10.             for (int i = 0; 1 < 2; i++) {
  11.                 System.out.println("Objeto obtenido: " + obj.get());
  12.         }
  13.     }
  14. }

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