我刚刚开始练习使用线程池。我正在用 Java 创建一个服务器-客户端银行应用程序,我浏览了一些 Oracle 的文档,并且正在考虑使用缓存线程池。但是我进行了一些计数测试,似乎固定线程池更快。缓存的线程池滞后,似乎创建了太多不必要的线程。(或者我在这里做错了什么)。
我的问题是,在现实世界的情况下,哪个更有效?或者是否有另一种更有效的池。
另外,在我的计数测试中,我有几行:
ExecutorService executor = Executors.newCachedThreadPool();
for (int i = 0; i < 500; i++) {
Runnable worker = new serv(10000000L + i);
executor.execute(worker);
}
在上面的几行中,未使用的线程是否会自动重用(而不是创建新线程),还是我必须添加其他内容以确保发生这种情况?