Posso ter duas Threads na mesma classe ?[RESOLVIDO]


public class CreatingKeyboardEvent {...

// metodos

  public  class  trataInputBuffer implements Runnable{  // classe interna

     public synchronized void run(){


    while(true){...

  ....

}

 public  class interpretaComandos implements Runnable{ // classe interna 

      public synchronized void run(){
     while(true){
       try{
   Thread.sleep(100);
     }catch(InterruptedException ex){ex.printStackTrace();}

}

/// metodo go...


  public void go(){
     trataInputBuffer job1 = new trataInputBuffer();
     Thread ler = new Thread(job1);
     ler.start();
     interpretaComandos job2 = new interpretaComandos();
     Thread verificarTeclas = new Thread(job2);
     verificarTeclas.start();

     }

o problema é o seguinte a Thread verificarTeclas não é executado…mas não da erro nem na compilação nem na execução… alguém tem uma luz ??

sds

j.silvestre

coloca um System.out no loop do método run da sua “interpretaComandos”, se for o caso tira o synchronized e testa denovo. deveria chamar o método run e a thread ficar la sem fazer nada… como você viu que não a chamou?

já tinha colocado


   System.out.println("interpreta comandos"); //debug

mas não imprimiu nada…

sds

j.silvestre

o que acontece? o software inteiro fecha? nenhum erro? só executa a primeira thread e não a segunda?

coloca um System.out antes de

verificarTeclas.start()

e outro depois… deveria funcionar, ve ai se não está dando algum erro antes de iniciar a thrad… qualquer coisa amanhã eu tento te ajudar mais…

e ai… descobriu alguma coisa?

Olá!

O que tem dentro do método run() da sua classe trataInputBuffer?

posta o código aí pra gente tentar ajudar

Descobri…

o seguinte no metodo run da Thread eu tenho uns 20 if então a Thread ficava comparando os if só que eu coloquei uns return dentro do if, então a Thread rodava mas logo de cara ela encontrava
um return e morria. então eu tirei todos os returns. moral da história quando executava o return ele saia do while(true). foi erro de lógica.

sds

j.silvestre