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();


 
  




 Autor
 Autor
		


 En línea
									En línea
								

 
						 
						 
						