Thread + Método Wait + Método [RESOLVIDO]

5 respostas
Tenkara_Kiddo

Boa tarde pessoal,
andei pesquisando porém não consigo entender uma questão sobre Threads.

quando eu tenho um while (true) para looping infinito, e eu quero que a thread durma por 5 segundos, eu devo usar qual método???

o código abaixo somente ilustra uma situação de processamento até o fim da execução do programa.

private void iniciaFila() {
    Thread thread = new Thread(new Runnable() {
	@Override
	public void run() {
		while (true) {
			salvaVeiculoDaFila();																	
		}
	}
    });		
}

se eu usar o método Sleep da classe Thread (dentro do método run) ele vai dormir corretamente???
e se eu usar o método Wait da Object no objeto Thread??? qual é a diferença ???

[]'s a todos.

5 Respostas

Tenkara_Kiddo

Pergunta extra:

O método vai melhorar a performance do programa???

tguerra

Oi, Tenkara Kiddo!

Pelo que entendi você quer suspender por um tempo, portando aconselharia o sleep. Por exemplo, meu run ficaria assim:

public void run(){ while(contador<10){ try { sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } contador++; System.out.println(contador); } }

E a minha main:

public static void main(String[] args) { for(int i=0; i<2; i++){ Thread t = new ContagemThread(i); t.start(); }

Tenkara_Kiddo

Opa olá tguerra
obrigado pela resposta, é isso mesmo quero suspender a Thread por um tempo para evitar um processamento continuo, vou testar o que você sugeriu e depois posto se deu certo ou não
[ ] 's

soaresinfo

A diferença entre os métodos é que o sleep pára por um período determinado de tempo e depois volta a executar. O wait, fica em estado de espera até que outro thread chame um notify ou notifyAll no objeto, para que sua thread volte ao estado de prontidão e entre de novo na fila para usar tempo de processador.

Tenkara_Kiddo

Boa noite soaresinfo, obrigado pela resposta,
[]'s

Criado 20 de outubro de 2011
Ultima resposta 24 de out. de 2011
Respostas 5
Participantes 3