Questão Thread

6 respostas
Fabricio_Cozer_Marti
Galera, acho q essa resposta não está muito coerente com a prática não. Se trata de Threads, vejamos a questão:
class A extends Thread {
  public void run() {System.out.print("A");}
}
class B {
  public static void main (String[] args) {
    A a = new A();
    a.start();
    
    a.start();  // 1
  }
}
What is the result of attempting to compile and run the program? a. The program compiles and runs without error b. The second attempt to start thread t1 is successful c. The second attempt to start thread t1 is ignored d. Compile-time error at marker 1 e. An IllegalThreadStateException is thrown at run-time f. None of the above

Qual seria a resposta???

Eu discordo completamente da resposta!

6 Respostas

thadeurc

Ela roda uma vez e depois gera a exception no //1

Fabricio_Cozer_Marti

Certo a resposta na teoria seria essa !!! E serve pra quem ta estudando pra SCJP , pois se cair uma parecida a resposta eh essa que thadeurc
falou…

Mas na pratica, raciocine comigo … se a thread ja estiver terminado de ser executada e passar do estado RUNNING para DEAD, entao se voce chamar o start novamente desta thread, vc naum sera capaz de recussita-la rsrs…
mas naum lancara nenhum runtime exception.

Logo, eu diria que isso eh imprivesivel, pois vc naum sabe qto tempo sua thread irá levar para chegar ao estado de DEAD, pode ser q chegue antes
de vc tentar chamar novamente o start(), vai depender do processador da sua maquina!

por exemplo se eu adicionasse um Thread.sleep() entre as chamadas de start():

class A extends Thread { public void run() {System.out.print("A");} } class B { public static void main (String[] args) { A a = new A(); a.start(); try{ Thread.sleep(2000); }catch(InterruptedException e){ e.printStackTrace(); } a.start(); // 1 } }

nao sera lancado nada !

entenderam :roll:

lucao

Não to estudando muito sobre threads, mas a resposta certa seria a E ?

thadeurc

Eu ainda nao fiz a prova, mas as questões de threads são um tanto quando “filosóficas” (foi a melhor paralvra que eu achei hahaha) pois em muitos casos não sabemos ao certo o q vai acontecer… tem sempre um depende…

Cara, qual guia q vc está seguindo???

Fabricio_Cozer_Marti

Isso a resposta seria E para nível de certificação … na prática é outra história !!!

Cara estou fazendo os mocks do DAN !! e estudando pelo livro de Kathy!

keller

Tanto em Threads quanto em Garbage Collector nada é 100% garantido…
Isso tá me quebrando nos estudos… :?

Criado 4 de abril de 2005
Ultima resposta 5 de abr. de 2005
Respostas 6
Participantes 4