我想用固定数量的线程创建一个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");