Por que não iniciar um thread no construtor? Como terminar?

Estou aprendendo a usar threads em Java. E eu escrevi uma classe que implementa Runnable para executar simultaneamente em outro thread. O thread principal lida com a escuta da porta serial, enquanto o segundo thread lida com o envio de dados para a mesma port

public class MyNewThread implements Runnable {
    Thread t;

    MyNewThread() {
        t = new Thread (this, "Data Thread");
        t.start();
    }

    public void run()  {
        // New Thread code here 
    }

A primeira thread inicia a segunda assim:

public class Main {
    public static void main(String[] args) throws Exception{
        new MyNewThread();
        // First thread code there
    }  
}

Isso funciona, mas meu complier sinaliza um aviso dizendo: É perigoso iniciar um novo thread no construtor. Por que é isso

A segunda parte desta pergunta é: como se eu tiver um loop em execução em um thread (o thread de escuta da porta serial) e digitar um comando de saída no meu segundo thread. Como faço para terminar o primeiro thread? Obrigado

questionAnswers(4)

yourAnswerToTheQuestion