Thread ...duvidas...?

olá pessoal,

uma duvida por que não apareceu primeiro a mensagem Thread e sim foi a ultima
coisa a aparecer…

se alguem puder me ajudar agradeço.

abs


class MyThread extends Thread {
	      public static void main(String [] args) {
	         MyThread t = new MyThread();
	         t.start() ;
	         System.out.print("one. ");
	         //t.start();
	         System.out.print("two. ");
	      }
	     public void run() {
	        System.out.print("Thread ");
	     }
	  }
resultado:
one. two. Thread 

olá mais uma duvida…

no codigo abaixo instanciei a classe MyThread e o objeto Thread recebeu a instancia
de MyThread…

Minha duvida o objeto Thread teria que receber somente uma classe implementada Runnable…???

se alguem puder me ajudar …agradeceria…

abs


class MyThread extends Thread {
 4.     public static void main(String [] args) {
 5.        MyThread t = new MyThread () ;
 6.        Thread x = new Thread(t);
 7.        x.start();
 8.     }
 9.     public void run() {
10.        for(int i=0;i<3;++i) {
11.           System.out.print(i + "..");
12.        }
13.     }
14.  }

Duvida 1:
Quando você cria uma Thread e executa a mesma, não é possível prever quando o método run será executado. Como você mesmo observou, a mensagem apareceu no fim, mas poderia normalmente aparecer primeiro, bem como no meio.

Dúvida 2:
Na verdade a classe Thread possui um construtor que recebe um objeto do tipo Thread, como você mesmo utilizou e possui também um construtor que recebe um objeto de uma Casse que implementa a interface Runable. Portanto, não há problemas em estender a classe Thread e utiliza-la, só não é “elegante” digamos assim. Quando estendemos algo, queremos adicionar características novas à classe, o que não ocorre quando estendemos a classe Thread, estamos apenas introduzindo um código para ser executado, portanto, implemente Runable que é melhor.