Bueno hice una aplicacion para tratar de entender el funcionamiento de las tuberias y para ello he hecho dos clases una productor y otra consumidor el objetivo es que productor genera un numero aleatorio y luego se lo pasa al consumidor para que el haga con ese dato lo que quiera ahora el problema esta en que el numero que envia el productor es diferente al que recibe el consumidor y por mas que reviso no encuentro donde esta el problema este es el codigo de las clases
Clase Principal
Código:
package programa;
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
PipedOutputStream salida = new PipedOutputStream();
PipedInputStream entrada = new PipedInputStream(salida);
Productor app1 = new Productor(salida);
Consumidor app2 = new Consumidor(entrada);
app1.start();
app2.start();
} catch(IOException ex) {
System.err.println("Error");
}
}
}
Clase Productor
Código:
package programa;
import java.io.*;
import java.util.*;
public class Productor extends Thread {
private PipedOutputStream salida;
private Random aleatorio;
public Productor(PipedOutputStream salida) {
this.salida = salida;
aleatorio = new Random();
}
public void run() {
try {
int numero = aleatorio.nextInt();
System.out.println("Productor --> "+numero);
salida.write((int)numero);
} catch(IOException ex) {
System.err.println("Error Lectura/Escritura");
}
}
}
Clase Consumidor
Código:
package programa;
import java.io.*;
public class Consumidor extends Thread {
private PipedInputStream entrada;
public Consumidor(PipedInputStream entrada) {
this.entrada = entrada;
}
public void run() {
try {
System.out.println("Consumidor --> "+entrada.read());
} catch(IOException ex) {
System.err.println("Error Lectura/Escritura");
}
}
}
Les agradeceria si me ayudaran a encontrar el error en el programa