【发布时间】:2023-03-08 11:40:02
【问题描述】:
我正在使用ExecutorService。我正在为for-loop 打开 10 个threads。所以它打开 10 threads 并且 connection 什么时候在这里关闭?在executor.shutdown()?如果是,它会关闭所有 10 个 threads 并再次打开 10 个 threads 吗?有什么我可以遵循更好的编码标准来提高性能的吗?
ExecutorService executor = Executors.newFixedThreadPool(10);
for(String str : stringList){
for(String str1 : stringList1){
for(String str2 : stringList2){
executor.execute(new Runnable() {
@Override
public void run() {
//do something
}
}
}
}
executor.shutdown();
executor.awaitTermination(24L, TimeUnit.HOURS);
实际上我的想法是遍历loop并将数据保存在文件中并为每次迭代保存。所以我想在这里遵循最佳实践,因为我不想在后期看到任何与服务器相关的问题,例如连接问题/outOfMemory exceptions。请建议。
我自己实现了这个,但我是multi-threading 的菜鸟。所以在看到我发布的其他一些博客和帖子后得到一些澄清。请帮忙!
【问题讨论】:
标签: java multithreading executorservice