7 Common Fork-Join pool¶
Intro¶
A partir de Java 8, la forma más conveniente de acceder a una instancia de ForkJoinPool
es usar el método estático ForkJoinPool.commonPool()
.
Como su nombre indica, esta llamada retorna una referencia al un objeto ForkJoinPool
común, predefinido por el sistema, que usa tantos hilos como núcleos de procesamiento estén disponibles.
El uso del pool común predefinido reduce el consumo de recursos, ya que no es necesaria la creación de un thread pool independiente para cada tarea.
Sin embargo, no siempre tiene por qué ser el pool idóneo. Por ejemplo, en el caso de tareas intensivas de entrada/salida, que van a ser bloqueadas en operaciones de E/S, será interesante que el pool tuviera un mayor número de hilos.
Otro aspecto que debemos tener en cuenta es que el common fork join pool es común a todas las aplicaciones, y, como veremos más adelante, es usado por defecto por otras api de Java, como los streams paralelos o CompletableFuture, por lo que puede que los hilos de dicho ejecutor estén muy ocupados.