我正在学习Executor服务,并试图了解如何与线程池中的线程共享数据列表。我的可运行方法需要从列表中读取数据并进行处理。
Runnable runnable = () -> {
System.out.println("Inside : " + Thread.currentThread().getName());
process(list.take());
};
ExecutorService executor = Executors.newFixedThreadPool(threadCount);
executorService.submit(runnable);
池中的所有线程应只处理列表中的不同元素一次
最佳答案
您可以遍历列表的每个元素,然后将它们提交给执行者:list.forEach(e -> executor.submit(() -> process(e)));
关于java - 如何在执行程序服务中使用数据排队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62770787/