Senhores, tenho uma JApplet que implementa runnable, onde eu estou tendo 
problemas para startar a terceira thread (no codigo, seria escutaServlet). Uma 
caracteristica do meu codigo eh usar a tal da JApplet (que por implementar swing eu 
sei que tenho de mexer em sua interface pelos metodos listenners) e ter dentro de cada 
thread que eu to tentando startar um loop infinito while(true).

        Quando eu starto a primeira thread eu nunca consigo startar a segunda... 
Imaginem que nesse primeiro momento eu nao tenha problemas de sincroniza��o e 
estivesse executando 3 threads literamente sem concorrencia entre si (soh para 
testar). Na minha cabeca, quando eu desse o yield e/ou colocasse a thread para durmir, 
ele deveria tirar a thread atual da fila de execucao e passar a vez para o proxima. no 
meu codigo, parece que o fluxo de execucao quando starta a primeira thread vai para 
dentro dessa thread e nao volta mais.

        Alguem poderia me dar uma luz e me dizer onde eu to errando?

        Obrigado a todos.
        Marcelo Magno


Meu codigo tah mais ou menos assim:

* No construtor da applet eu instancio a thread da applet assim:
        
Thread tApplet  =  new Thread(this);
tApplet.start();

* No metodo Start dessa applet eu faco assim:

FalaComServlet falaComServlet = new FalaComServlet();
falaComServlet.start();
// EU NUNCA CONSIGO PASSAR DAKI E STARTAR ESSA PROXIMA THREAD
EscutaServlet escutaServlet = new EscutaServlet();
escutaServlet.start();

* No metodo run assim:
    public void run()
    {   this.setVisible(true);
        while (true)
        {   
            System.out.println("Run da principal");
            try 
            {   Thread.yield();
                Thread.sleep(1000);
            } catch(Exception e)
            {   e.printStackTrace();
            }
            this.update(this.getGraphics());         //paint
        }   
    }

e no metodo run de cada Thread que fala com o servlet eu faco assim:
    public void run()
    {   while (true)
        {   
            System.out.println("EscutaServlet Rodando...");
            try
            {   Thread.yield();
                Thread.sleep(1000);
                
            }   catch (Exception e)
            {   e.printStackTrace(); 
            }
        }
    }    

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a