facilito micodigo:
Código:
public class Cola {
private String numero;
private boolean disponible=false;
public synchronized String get() {
while (disponible == false) {
try {
wait();
} catch (InterruptedException e) {
}
}
disponible = false; //lo va a consumir
notifyAll();
return numero;
}
public synchronized void put(String valor) {
while (disponible == true) {
try {
wait();
} catch (InterruptedException e) {
}
numero = valor;
disponible = true; //lo va a consumir
notifyAll();
}
}
Código:
public class Consumidor extends Thread{
private Cola cola;
private String n;
public Consumidor(Cola cola) {
this.cola = cola;
}
@Override
public void run(){
while(true){
n = cola.get();
System.out.println(n);
}
}
Código:
public class Productor extends Thread {
private Cola cola;
private String texto;
private String texto2;
private String actual;
public Productor(Cola cola, String texto, String texto2) {
this.cola = cola;
this.texto = texto;
this.texto2 = texto2;
this.actual = texto2;
}
@Override
public void run() {
while (true) {
if (!actual.equals(texto2)) {
cola.put(texto2);
actual = texto2;
} else {
cola.put(texto);
actual = texto;
}
}
}
main(){
Cola cola= new Cola();
Productor p= new Productor(cola,"ping","pong);
Consumidor c= new Consumidor(cola);
p.start();
c.start();