嵌套for循环在外层循环和内层循环中使用两个Executors.newCachedThreadPool缓存线程池执行操作

1. 首先,我们需要创建两个ExecutorService对象,这两个对象将作为我们的缓存线程池。

2. 然后,我们使用嵌套的for循环来执行我们的操作。在每个外层循环中,我们将创建一个新的任务并提交给外层线程池。在这个任务中,我们将创建一个新的内层循环,并在每个内层循环中创建一个新的任务并提交给内层线程池。

3. 最后,我们需要确保所有的任务都已经完成,所以我们需要调用ExecutorService的shutdown方法来关闭线程池。

java 复制代码
// 创建两个缓存线程池
public static ThreadFactory resizeImageThreadFactory = new ThreadFactoryBuilder()
            .setNameFormat("resizeImageThread-pool-%d")
            .build();

public static ExecutorService outerExecutor = Executors.newCachedThreadPool(resizeImageThreadFactory);

public static ExecutorService innerExecutor = Executors.newCachedThreadPool(resizeImageThreadFactory);
java 复制代码
import java.util.concurrent.*;

public class NestedLoopWithThreadPools {
    public static void main(String[] args) throws InterruptedException, ExecutionException {

        // 使用嵌套的for循环来执行操作
        for (int i = 0; i < 10; i++) {
            final int outerIndex = i;
            outerExecutor.submit(() -> {
                for (int j = 0; j < 10; j++) {
                    final int innerIndex = j;
                    innerExecutor.submit(() -> {
                        System.out.println("Outer loop index: " + outerIndex + ", Inner loop index: " + innerIndex);
                    });
                }
            });
        }

        // 确保所有的任务都已经完成
        outerExecutor.shutdown();
        innerExecutor.shutdown();
    }
}
相关推荐
黎雁·泠崖13 小时前
Java字符串高阶:底层原理深剖+经典面试题全解
java·开发语言
重生之我是Java开发战士13 小时前
【Java SE】反射、枚举与Lambda表达式
java·开发语言
weixin_4365250713 小时前
若依多租户版 - @ApiEncrypt, api接口加密
java·开发语言
Hello.Reader13 小时前
Flink Java 版本兼容性与 JDK 模块化(Jigsaw)踩坑11 / 17 / 21 怎么选、怎么配、怎么稳
java·大数据·flink
TechPioneer_lp13 小时前
小红书后端实习一面|1小时高强度技术追问实录
java·后端·面试·个人开发
TH_114 小时前
37、SQL的Explain
java·数据库·sql
康王有点困14 小时前
Flink部署模式
java·大数据·flink
EndingCoder14 小时前
属性和参数装饰器
java·linux·前端·ubuntu·typescript
芒克芒克14 小时前
LeetCode 134. 加油站(O(n)时间+O(1)空间最优解)
java·算法·leetcode·职场和发展
huahailing102414 小时前
Spring 循环依赖终极解决方案:从原理到实战(附避坑指南)
java·后端·spring