在ExecutorService中,可以使用以下方法将不同的值传递给每个线程:
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();
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对象获取不同的值进行操作。
领取专属 10元无门槛券
手把手带您无忧上云