Skip to content

12 ThreadFactory

ThreadFactory

Si queremos personalizar la forma en que los ejecutores crean los hilos cuando es necesario, podemos proporcionarle al ejecutor un objeto factoría de una clase que implemente la interfaz ThreadFactory, ya sea a través del constructor del ejecutor, a través de algún método estático factoría de la clase Executors o del propio método setThreadFactory(threadFactory) del ejecutor.

ThreadFactory corresponde a una interfaz funcional cuyo método newThread(runnable) recibe el runnable que debe ejecutar el hilo, de manera que debe construir y retornar un objeto Thread que lo ejecute. Así, podemos personalizar la creación del hilo, por ejemplo estableciendo una determinada política de nombres o de prioridades.

ThreadPoolExecutor cachedThreadPoolExecutor = 
    (ThreadPoolExecutor) Executors.newCachedThreadPool(new ThreadFactory() {
            @Override
            public Thread newThread(Runnable runnable) {
                Thread thread = new Thread(runnable);
                // Customize thread
                // ...
                return thread;
            }
    });