Notify nao funciona

2 respostas
T

Possuo duas threads

public class Fabricacao implements Runnable{

    Thread pedido;
    
    public Fabricacao()
    {
        Pedido p = new Pedido();
        pedido = new Thread(p);
        
    }
    @Override
    public void run() {
        pedido.start();
        while(true)
        {
            synchronized(pedido)
            {
                try 
                {
                    pedido.wait();
                } catch (InterruptedException ex) {
                    Logger.getLogger(Fabricacao.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            JOptionPane.showMessageDialog(null, "Fabricado");
        }
        
        
    }
    
    public static void main(String[] args)
    {
        Fabricacao c = new Fabricacao();
        Thread t2 = new Thread(c);
        t2.start();
    }
}

E

public class Pedido implements Runnable {

    @Override
    public void run() {
        
      while(true)
      {
          synchronized(this)
          {
              for(int x =0; x<100;x++)
                {

                    System.out.println("Download: " + x);
                }
              notify();
          }      
                
               
            
        }
    }
        
    
    
}

Mas a thread fabricacao fica esperando eternamente no wait, é como se o notify nao funcionasse. O que estou fazendo de errado?
Obrigado a todos

2 Respostas

aechiara

não tenho como testar o código agora, mas notifyAll não resolve ?

soaresinfo

Você está misturando as variáveis, está dando wait na thread (pedido) ao invés do objeto §.

Criado 5 de maio de 2012
Ultima resposta 8 de mai. de 2012
Respostas 2
Participantes 3