java - 将方法提交到 ExecutorService Java

标签 java methods executorservice

所以我这里有这段代码,它将我的“NamePrinter”可运行类添加为 ExecutorService 任务。一切正常,但我想摆脱那个额外的类(class)。所以我问有没有办法向 ExexutorService 提交方法?

这是我目前拥有的代码:

public void start(){
        Collection<Future<?>> futures = new LinkedList<>();
        final ExecutorService es = Executors.newFixedThreadPool(poolSize);

        for (int i = 0; i < 10; i++) {
        futures.add(es.submit(new NamePrinter(name)));
        }

        es.shutdown();
}

但我希望它是这样的:

public void start(){
            Collection<Future<?>> futures = new LinkedList<>();
            final ExecutorService es = Executors.newFixedThreadPool(poolSize);

            for (int i = 0; i < 10; i++) {
            futures.add(es.submit(namePrint(i+"name"))); // This code doesn't work, I just made it so you could understand what I mean.
            }

            es.shutdown();
    }

public void namePrint(String name){  // I'd like this to be the task that ExecutorService runs.

System.out.println(name);

}

这是有可能实现的吗?

最佳答案

最接近的匿名内部类:

for (int i = 0; i < 10; i++) {
    final int x = i;
    futures.add(es.submit(new Runnable() {
        @Override public void run() {
            namePrint(x + "name");
        }
    }));
}

关于java - 将方法提交到 ExecutorService Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11632896/

相关文章:

java - 在多用户 JSP J2EE 应用程序中创建和关闭 ExecutorService 实例

java - Java中 "greater than"或 "less than"的正则表达式不使用括号 "<|>"符号

使用 2 种可能方法之一的 Java 接口(interface)/回调

java - 斐波那契算法的时间复杂度

java - 访问第二类中另一个类的 Swing 组件

Java Future.isDone 返回 true,即使它不应该返回 true,这会停止程序进程

android - Android 中 SingleThreadExecutor 和 Handler 的区别(举例)

java - 我们什么时候使用 Statement 或 PreparedStatement?

java - 使用谷歌地图javascript api v3在谷歌地图上添加多个目的地

java - 使用 Jackson 不断解析一堆字符串的最有效方法是什么?