Java: iniciar un nuevo hilo en un constructor

¿Por qué está comenzando un nuevo hilo en un constructor mal visto en Java (o en cualquier lugar, para el caso). Recibo advertencias de Netbeans por hacerlo, pero no me da ninguna sugerencia de refactorización. Estoy escribiendo una aplicación Swing cliente / servidor, y el hilo que estoy iniciando está en el constructor JFrame del servidor, para escuchar continuamente los datagtwigs del cliente.

¿Por qué esta no es una buena práctica y cómo debo evitarla?

Iniciar un hilo desde el constructor permite que el subproceso iniciado acceda al objeto que se está construyendo antes de que esté correctamente construido, y así hace que un objeto no completamente construido esté disponible para el nuevo subproceso.

Puede crear el hilo en el constructor y proporcionar un método de “inicio” para iniciar el hilo desde el exterior.

O bien, podría hacer que el constructor y los métodos de inicio sean privados y proporcionar un método de fábrica estático que cree el objeto, inicie el hilo y devuelva el objeto creado.

Eche un vistazo a este enlace http://www.ibm.com/developerworks/java/library/j-jtp0618/index.html#code4

Esto se hace con referencias implícitas a this y subclassing .