如何使ExecutorService创建执行完全相同任务的n个线程?

时间:2019-07-11 08:47:28

标签: java multithreading threadpool executorservice executor

我正在关注this example

在该示例中,可以创建一个线程池,该线程池将执行3个不同的任务。

但是,我只想创建一个由n个线程执行的任务。

Cabbage

我如何以适当的方式实现这一目标?

1 个答案:

答案 0 :(得分:2)

里面没有魔术。您要做的就是多次提交相同的任务,如下所示:

public static void main(String args[]) {
    int numberOfThreads = 2;
    ExecutorService executorService = Executors.newFixedThreadPool(numberOfThreads);
    Runnable task1 = () -> {
      System.out.println("Executing Task1 inside : " + 
      Thread.currentThread().getName());
      try {
        TimeUnit.SECONDS.sleep(2);
      } catch (InterruptedException ex) {
        throw new IllegalStateException(ex);
      }
    };
    executorService.submit(task1);
    executorService.submit(task1);
}