thread suma resueltos hilos fuente entre ejemplos diferencia detener con codigo java multithreading

suma - runnable java



Java: iniciando un nuevo hilo en un constructor (2)

¿Por qué es comenzar un nuevo hilo en un constructor mal visto en Java (o en cualquier otro lugar). Estoy recibiendo advertencias de Netbeans por hacerlo, pero no me está dando 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 datagramas del cliente.

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



El inicio de un subproceso desde el constructor permite que el subproceso iniciado acceda al objeto que se está construyendo antes de que se construya correctamente y, por lo tanto, hace que un objeto no completamente construido esté disponible para el nuevo subproceso.

Podría crear el hilo en el constructor y proporcionar un método de "inicio" para iniciar el hilo desde el exterior.

O puede 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 subproceso y devuelva el objeto creado.