Quiero un objeto que genere un hilo de daemon que continuará ejecutándose durante toda la vida del proceso. Digamos, solo por el argumento, que es un hilo en un sistema embebido, y espera recibir y manejar comandos en algún puerto de diagnóstico. Pero, podría ser cualquier cosa realmente. La idea principal es que está viendo algo durante un largo período de tiempo; No está realizando una secuencia de tareas .
La sabiduría común de Java dice: nunca instanciar Thread
, use un ExecutorService
en su lugar. (Por ejemplo, vea esta respuesta ) ¿Pero cuál es el beneficio? Usar un grupo de subprocesos como un medio para crear un solo subproceso de larga ejecución parece inútil. ¿Cómo sería mejor que si escribiera esto?
class Foobar {
public Foobar() {
this.threadFactory = Executors.defaultThreadFactory();
...
}
public Foobar(ThreadFactory threadFactory) {
this.threadFactory = threadFactory;
...
}
public void start() {
fooThread = threadFactory.newThread(new Runnable() { ... });
fooThread.setDaemon(true);
fooThread.start();
}
...
}
Nota: esta pregunta parece similar a la mía, pero las respuestas solo dicen cómo usar un grupo de subprocesos, no por qué .
fuente