Рекомендации по многопоточности: ограничение задач newFixedThreadPool

Я хочу запустить много задач для запуска в базе данных + -42Mio записей. Я хочу запустить это партиями по 5000 записей / раз (в результате получается 850 задач). Я также хочу ограничить количество потоков (до 16), Java начинает делать это для меня, и я использую текущий код для выполнения этой задачи:

 ExecutorService executorService = Executors.newFixedThreadPool(16);
 for (int j = 1; j < 900 + 1; j++) {
     int start = (j - 1) * 5000;
     int stop = (j) * 5000- 1;
     FetcherRunner runner = new FetcherRunner(routes, start, stop);
     executorService.submit(runner);

     Thread t = new Thread(runner);
     threadsList.add(t);
     t.start();
 }

Это правильный способ сделать это? Тем более, что у меня сложилось впечатление, что Java просто увольняет все задачи ... (FetcherRunner инвентарьrunnable)

Ответы на вопрос(5)

Ваш ответ на вопрос