Thread, deve ser um errinho banal

5 respostas
H

Onde ta o erro?

public class jmain {
	public static void main (String args[]) {
		th t = new th();
		t.start();
	}
}
class th extends Thread{
	private int n;

	public th () {
		n = 10;
	}

	public void run () {
		System.out.println(n);
		n--;
	}
}

Saida atual:
10

Não era pra sair 10,9,8,...,-8,-9,-10,-11,...?
Não tenho muita experiencia e acabei travando ai...

Obrigado pessoal

5 Respostas

L
Hiro:
Onde ta o erro?
public class jmain {
	public static void main (String args[]) {
		th t = new th();
		t.start();
	}
}
class th extends Thread{
	private int n;

	public th () {
		n = 10;
	}

	public void run () {
		System.out.println(n);
		n--;
	}
}

Saida atual:
10

Não era pra sair 10,9,8,...,-8,-9,-10,-11,...?
Não tenho muita experiencia e acabei travando ai...

Obrigado pessoal

O método run() só é executado uma vez pela thread. Acho que com isso você já consegue ver onde está errando....

W

Coloca um for dentro do metodo run.

H

Tinha entendido que ele ficaria em loop enquanto o programa rodasse ou até “desligar” a thread manualemente (devo ter me equivocado)

Então o run() é um metodo como outro qualquer?

kaique

Primeiro, se costuma a utilizar de code conventions, por exemplo, colocar a primeira letra da sua classe com letra maiúscula. Caso queira saber mais, a sun tem uma explanação sobre code conventions no site deles…
Agora a Thread. Ela está correta. Quando você chamar o método start(), a Thread iniciará uma outra linha de execução, percorrendo o conteúdo do método run(). No seu caso, o método somente imprime o valor da variável n e depois decrementa ela. Com isso o método run() termina, e consequentemente, a Thread irá parar. Para ela ficar decrementando o valor, será preciso você incluir um laço de repetição (for, while, etc…) para realizar o trabalho de ficar decrementando e imprimindo vários valores…
Caso tenha ainda alguma outra dúvida, tamos aí…

[]'s.

H

Agradecido, com isso já posso seguir meus estudos…

Criado 12 de novembro de 2007
Ultima resposta 12 de nov. de 2007
Respostas 5
Participantes 4