public class Main extends Thread { public static void main(String[] args) { Main Exemplo = new Main(); Exemplo.XPTO(); } public void run() { System.out.println("Hello thread"); } } Considerando o trecho de código em Java precedente, assinale a opção que apresenta o comando que deve substituir os caracteres XPTO para se executar a Thread no código.
- A)start
Correta, porque start() inicia a thread e faz a JVM chamar o método run() em uma nova linha de execução.
- B)runnable
Errada, porque Runnable é uma interface de tarefa, não um comando para iniciar thread nesse código.
- C)alive
Errada, porque isAlive() serve para verificar se a thread está ativa, não para executá-la.
- D)thread
Errada, porque thread é o tipo/classe, não um método de inicialização.
- E)create
Errada, porque create() não é o método usado em Java para disparar uma thread.
Gabarito: A
Em Java, herdar de Thread não faz a execução acontecer por mágica. Você pode criar a classe, sobrescrever o método run() e até montar o objeto, mas a thread só entra em ação de verdade quando o método próprio de inicialização é chamado. É aqui que a prova gosta de confundir: uma coisa é definir o comportamento da thread, outra é iniciar sua execução. No código, o método run() contém o que será executado em paralelo, no caso, a mensagem "Hello thread". Porém, se você chamar run() diretamente, o código roda como uma chamada comum de método, no mesmo fluxo da main, sem criar uma nova thread. Para executar de fato em uma nova linha de execução, o comando adequado é start(). O método start() é o que solicita à JVM o início da thread. Depois disso, a própria JVM chama o run() em um novo contexto de execução. Isso é clássico em Java e cai muito em concurso porque parece detalhe, mas é conceito central de programação concorrente. Então, o gabarito A está correto porque start() inicia a thread, enquanto run() apenas define o que ela fará. Se a questão fosse sobre apenas "executar o código do método", aí a resposta poderia confundir; mas como pede explicitamente "executar a Thread", é start mesmo.