Execução de Código Assincrono

5 respostas
J

eae galera,

to precisando executar um código assincrono, segue em exemplo abaixo:

public void metodo1() {
    metodo2();
    String teste = "";
    // outras linha de código aqui
}
	
public void metodo2() {
    // código método2
}

sei que da forma como está acima não é possível fazer, executar o método2 sem interromper a execução do metodo1, como posso fazer para conseguir esse comportamento???

vlw!!!

5 Respostas

T

Tente iniciar uma thread que execute o método 2 dentro do método 1.

G

vocÊ tem 2 metodos.

nao é só criar uma thread para cada um e mandar roda-los, nao?

???

J

Tenta isso:

public void  metodo1() {  
       
        new Thread(new Runnable() {
			
			@Override
			public void run() {
				metodo2(); 
			}
		}).start();


         String teste = "";  
         // outras linha de código aqui  
   }  
   
   public void metodo2() {  
   // código método2  
   }
G

Eu nao tinha visto que o metodo2 tava dentro do metodo1.

entao o que vc tem que fazer é exatamente o que o nosso amigo falou ai em cima.

Me tirem so uma duvida que deve ser mt besta.

  1. Se rodarmos a thread do modo que ta acima, sem colocar uma variavel de instancia pra ela, nao seria considerada objeto sem referencia e o garbage collector poderia tira-la da memoria, nao?

  2. E se a gente usasse uma variavel de instancia pra poder instanciar a thread, como a thread seria uma variavel local ao metodo1, ela so poderia ser tirada da memoria quando o motodo acabasse (qnd um metodo chega ao final ele apaga as variaveis internas a ele), entao o metodo1 teria que esperar a thread acabar o processamento para poder ser finalizado?

J

valeu pelas dicas pessoal,

mas eu preciso executar esse comportamento dentro de um container JBOSS, como não é muito recomendado o uso de thread no container, haveria alguma outra forma de se fazer isso?

vlw!!!

Criado 15 de abril de 2011
Ultima resposta 19 de abr. de 2011
Respostas 5
Participantes 4