When my application launches, a executor service (using Executors.newFixedThreadPool(maxThreadNum) in java.util.concurrent) object is created. When requests come, the executor service will creates threads to handle them.

Because it takes time to create threads at run time, I want to make threads available when launching application, so that when requests come, it would take less time to process.

What I did is following:

```
executorService = Executors.newFixedThreadPool(200);
for (int i=0; i<200; i++) {
    executorService.execute(new Runnable() {
        @Override
        public void run() {
            System.out.println("Start thread in pool " );
        }
    });
}

```

It will creates 200 threads in the executorService pool when application launches.

Just wonder is this a correct way of creating threads when application starts?
Or is there a better way of doing it?