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