【发布时间】:2017-08-02 04:11:04
【问题描述】:
我有嵌套循环。我知道没有办法减少嵌套循环完成所花费的时间。但是我们如何才能使用多线程或执行器服务更快地完成循环。
例如:
for(String str : ListA){
for(String str1 : ListB){
for(String str2 : ListC){
//do Something
}
}
}
所以我知道完成循环需要 MNP(其中 M,N,P 是列表的大小)次。但是我如何在这里利用多线程并通过执行异步作业更快地完成循环。我想像使用 java 7 一样使用 Executor Service(不能使用并行流)。
我试过了:
ExecutorService executor = Executors.newFixedThreadPool(10);
for(String str : ListA){
executor.execute(new Runnable() {
@Override
public void run() {
for(String str1 : ListB){
for(String str2 : ListC){
//do Something
}
}
} });
}
但我相信上述过程是启动线程 10 次但执行相同的事情 10 次,这不是循环的工作方式。有人可以建议我如何使用 Java 中的多线程执行器服务来完成这个循环吗?
【问题讨论】:
-
提交你的 //do Something 逻辑到执行器池。
-
您能否提供一个镜头示例说明您的意思? @karthikdivi
-
@sanojmathew 如问题中所述,我正在使用 Java7。谢谢你的建议:)
标签: java multithreading