¿Por qué no comenzar un hilo en el constructor? ¿Cómo terminar?

Estoy aprendiendo a usar hilos en Java. Y escribí una clase que implementa Runnable para ejecutarse simultáneamente a otro hilo. El subproceso principal se encarga de escuchar el puerto serie, mientras que el segundo subproceso se encargará de enviar datos a ese mismo puerto.

public class MyNewThread implements Runnable {
    Thread t;

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

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

Hay el primer hilo comienza el segundo así:

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

Esto funciona, pero mi compilador señala una advertencia que dice: Es peligroso iniciar un nuevo hilo en el constructor. ¿Por qué es esto

La segunda parte de esta pregunta es: ¿cómo si tengo un bucle ejecutándose en un subproceso (el subproceso de escucha del puerto serie) y escribo un comando de salida en mi segundo subproceso? ¿Cómo consigo que termine el primer hilo? Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta