当我使用具有四个内核的CPU时,newFixedThreadPool的理想数字线程是多少?

时间:2018-09-16 19:27:21

标签: java multithreading concurrency

我想用固定数量的线程创建一个Java线程池。我正在使用Java Executors和ExecutorService创建线程池。

当我使用具有四个内核的CPU时, newFixedThreadPool(nThreads)方法的理想数字线程是什么? 如果在4个核心CPU上创建具有30个线程的池该怎么办? 如果一次只能在CPU上执行4个线程,这样做有什么优点或缺点?

    ExecutorService executor = Executors.newFixedThreadPool(30);
    for (int i = 0; i < 30; i++) {
        Runnable worker = new MyThread("" + i);
        executor.execute(worker);
      }
    executor.shutdown();
    while (!executor.isTerminated()) {
    }
    System.out.println("Finished all threads");

0 个答案:

没有答案