Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Sobre a execução de uma Thread

Boa noite,

fiz meu exercício da seguinte forma:

package br.com.alura.thread;

public class Principal {

    public static void main(String[] args) {
        Runnable tarefa = new ImprimeString();
        Thread imprime = new Thread(tarefa, "Thread Teste");
        imprime.run();

    }

}

Repare que eu usei o metodo "run()" ao invés de "start()". Queria saber se existe alguma diferença.

4 respostas
solução!

A classe Thread também implementa a interface Runnable. Se você executar o imprime.run() ela vai executar o método run da sua tarefa na thread atual ao invés de inicar a execução na nova thread. É o mesmo que chamar tarefa.run()

Então usando o "run()" eu não estou alocando o método na thread, é isso? Devo usar o "start()"?

Eu não usaria a palavra alocando, mas é isso mesmo. Chame o método start() da thread para inicar o método run() da tarefa na nova thread.

desculpa ai cara, agora que eu entendi o que você tinha dito na primeira resposta. Tinha lido bem rápido e acabei entendendo outra coisa. Desculpa. Vou marcar ela como solução.