Salve, Salve Galera!
Alguém pode me explicar o porque isso imprime somente START?
class Teste extends Thread {
public void run() {
System.out.println("RUN");
}
public void start() {
System.out.println("START");
}
}
no main eu dei um
new Teste().start();
Deixei o pc um ligado durante um bom tempo pensei que a thread tinha ido dormir ou o escalonador deixou ela de lado…ou sei lá… mas num funfou…
Ser que eu reescrevi o metodo start, mas e ai… num devia funfar normalmente?
Explicações?
Atn.
Dennys Fredericci
http://www.dennys.eti.br
Olá,
Ao invez de “new Teste().start();” utilize “new Thread().start();” que dai será invocada o método run() de Thread.
Eu acho que é isso mesmo. Você sobrescreveu o método, ele não chama mais o run().
Eu acho que é isso mesmo. Você sobrescreveu o método, ele não chama mais o run().[/quote]
Então… eu imagino que pelo motivo de ter reescrito o metodo start a Thread não vai para o estado de pronta para que o escalonador selecione…
Estranho… :roll:
Atn.
Dennys Fredericci
Olá,
Como você sobrescreveu o método, rpecisa chamar o métyodo da classe pai. Faça assim:
class Teste extends Thread {
public void run() {
System.out.println("RUN");
}
public void start() {
super.start();
System.out.println("START");
}
public static void main(String args[]){
new Teste().start();
}
}
Nope, fazendo isso você vai iniciar uma nova Thread, não um Teste
[quote=“pcalcado”]Olá,
Como você sobrescreveu o método, rpecisa chamar o métyodo da classe pai. Faça assim:
class Teste extends Thread {
public void run() {
System.out.println("RUN");
}
public void start() {
super.start();
System.out.println("START");
}
public static void main(String args[]){
new Teste().start();
}
}
Nope, fazendo isso você vai iniciar uma nova Thread, não um Teste ;)[/quote]
hum… véro… que vacilo…
:oops:
Valeu!
Atn.
Dennys Fredericci
http://www.dennys.eti.br