首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将不同的值传递给ExecutorService中的每个线程?

在ExecutorService中,可以使用以下方法将不同的值传递给每个线程:

  1. 使用Lambda表达式或匿名内部类创建Runnable或Callable对象,并在其中传递不同的值。例如:
代码语言:txt
复制
ExecutorService executorService = Executors.newFixedThreadPool(5);

for (int i = 0; i < 5; i++) {
    final int value = i; // 不同的值
    executorService.submit(() -> {
        // 在这里使用value进行操作
        System.out.println("Thread " + Thread.currentThread().getId() + ": " + value);
    });
}

executorService.shutdown();
  1. 可以使用ThreadLocal类来为每个线程创建独立的变量,并将不同的值设置到对应的线程中。例如:
代码语言:txt
复制
ExecutorService executorService = Executors.newFixedThreadPool(5);
ThreadLocal<Integer> threadLocal = new ThreadLocal<>();

for (int i = 0; i < 5; i++) {
    final int value = i; // 不同的值
    executorService.submit(() -> {
        threadLocal.set(value);
        // 在这里使用threadLocal.get()获取不同的值进行操作
        System.out.println("Thread " + Thread.currentThread().getId() + ": " + threadLocal.get());
    });
}

executorService.shutdown();

这样,每个线程都可以通过Runnable或Callable对象中的变量或ThreadLocal对象获取不同的值进行操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

6分33秒

048.go的空接口

10分30秒

053.go的error入门

1分0秒

激光焊锡示教系统

5分27秒

03多维度架构之会话数

6分9秒

054.go创建error的四种方式

2分29秒

基于实时模型强化学习的无人机自主导航

5分33秒

JSP 在线学习系统myeclipse开发mysql数据库web结构java编程

1分30秒

基于强化学习协助机器人系统在多个操纵器之间负载均衡。

领券