我正在做这个项目,我想在我的代码中使用多线程。所以我开发了这段小代码并对其进行了测试,但结果发现它只使用了我计算机中的一个线程。有人可以告诉我它有什么问题以及如何改进它吗?
public static int choiceCount(List<Character> charlist) throws InterruptedException, ExecutionException {
int coreCount = 8;
ExecutorService e1 = Executors.newFixedThreadPool(coreCount);
Integer total = 0;
for (int i = 0; i < coreCount; i++) {
Future<Integer> result = e1.submit(new Count(coreCount, i, charlist));
total += result.get();
}
e1.shutdown();
return total;
}
这是可调用的
class Count implements Callable<Integer> {
//where the processing code is
}
所以当我运行这个程序时,它只使用了我的 CPU 的 12.5%,这只是一个线程......想法伙计们?
谢谢