Optimal way of creating a fixed size thread pool in Java using the Executors service
I am using the Executors framework in Java to create thread pools for a multi-threaded application, and I have a question related to performance. I have an application which can work in realtime or non-realtime mode. In case it's realtime, I'm simply using the following: THREAD_POOL = Executors.newCachedThreadPool(); But in case it's not realtime, I want the ability to control the size of my thread pool. To do this, I'm thinking about 2 options, but I don't really understand the difference, and which one would perform better. Option 1 is to use the simple way: THREAD_POOL = Executors