Outra Questão de Thread

6 respostas
wbsouza

What will happen if you compile/run this code?

1: public class Q1 extends Thread
2: {
3:    public void run()
4:    {
5:       System.out.println("Before start method");
6:       this.stop();
7:       System.out.println("After stop method");
8:    }
9:
10:   public static void main(String[] args)
11:   {
12:      Q1 a = new Q1();
13:      a.start();
14:   }
15: }

A) Compilation error at line 7.
B) Runtime exception at line 7.
C) Prints “Before start method” and “After stop method”.
D) Prints “Before start method” only.

6 Respostas

caiofilipini

D) Prints “Before start method” only.

[]'s

P

acho que a resposta é “A”, porque stop foi depreciado…

wbsouza

Embora o stop() esteja “deprecated” ainda funciona. A resposta correta é realmente a D, é uma questão de compatibilidade, ou seja não pode ser retirado das APIs da noite para o dia.

[]s, Welington B. Souza

G

Welington,

E quanto a questão do segundo System.out nunca ser alcançado? não deveria aparecer um alerta, ou um erro na compilação, ou isso só aparece para outras funções ou declarações?



                                                                 []'s Gladyston
wbsouza

É por essas e outras que o método stop() foi depreciado. Ele pára abruptamente a thread em execução, sem dar nenhum aviso. Não há chance alguma da thread se recuperar de uma chamada ao método stop(), e não há retorno, exceção ou alguma coisa do gênero.

Conclusão, não use! Somente fique atento. Se cair alguma questão na prova vc tem que saber. :slight_smile:

[]s, Welington B. Souza

G

O código abaixo apresenta um comando, como o exemplo com threads, que nunca será alcançado, mas nesse caso o compilador reclama.

"C:Q1.java:7: unreachable statement"

public class Q1  
 { 
    public void teste()
    { 
       System.out.println("Before start method"); 
       return; 
       System.out.println("After stop method"); 
    } 
 
   public static void main(String[] args) 
   { 
      Q1 a = new Q1(); 
      a.teste(); 
   } 
 }

[]'s Gladyston

Criado 19 de julho de 2003
Ultima resposta 11 de ago. de 2003
Respostas 6
Participantes 4