使用multithreading异步循环

我有嵌套循环。 我知道没有办法减少嵌套循环完成所花费的时间。 但是我们如何使用multithreading或执行程序服务更快地完成循环。

例如:

for(String str : ListA){ for(String str1 : ListB){ for(String str2 : ListC){ //do Something } } } 

所以我理解完成循环需要M N P(其中M,N,P是List的大小)次。 但是我如何在这里使用multithreading并通过执行异步作业更快地完成循环。 我想使用Executor Service,因为我使用的是java 7(不能使用Parallel Streams)。

我试过了 :

 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中的multithreading执行器服务来完成这个循环吗?

循环足够快,您不必优化它。 你正在执行的实际代码//如果有阻塞行为,可能会遇到问题。 在这种情况下,您可以执行以下操作

 ExecutorService executor = Executors.newFixedThreadPool(10); List level1 = Arrays.asList("1", "2", "3"); List level2 = Arrays.asList("a", "b", "c"); List level3 = Arrays.asList("x", "y", "z"); for(String l1 : level1){ for(String l2 : level2){ for(String l3 : level3){ executor.execute(new Runnable() { @Override public void run() { get("http://foo.com/"+l1+"/"+l2+"/"+l3); } }); } } }