gpt4 book ai didi

Java:我应该在这里使用什么样的线程池?

转载 作者:行者123 更新时间:2023-11-30 09:22:27 25 4
gpt4 key购买 nike

我刚刚开始练习使用线程池。我正在用 Java 创建一个服务器-客户端银行应用程序,我浏览了一些 Oracle 的文档,并且正在考虑使用缓存线程池。但是我运行了一些计数测试,似乎固定线程池更快。缓存的线程池滞后,似乎创建了太多不必要的线程。 (或者我在这里做错了什么)。

我的问题是,在现实世界中,哪个更有效率?或者是否有另一种类型的池会更有效。

此外,在我的计数测试中,我有几行:

ExecutorService executor = Executors.newCachedThreadPool();

for (int i = 0; i < 500; i++) {
Runnable worker = new serv(10000000L + i);
executor.execute(worker);
}

在上面几行中,未使用的线程是否会自动重用(而不是创建新线程),还是我必须添加其他内容以确保发生这种情况?

最佳答案

Executors.newCachedThreadPool() API 中有解释

60 秒内未使用的线程将被终止并从缓存中删除。因此,保持空闲时间足够长的池不会消耗任何资源。

关于Java:我应该在这里使用什么样的线程池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16493671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com