+-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)