Thread Pools Thread pools on the JVM should usually be divided into the following three categories: CPU-bound Blocking IO Non-blocking IO polling Each of these categories has a different optimal configuration and usage pattern.