我想启动很多任务以在 +-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
)