gpt4 book ai didi

java - 在java中运行多少个线程?

转载 作者:搜寻专家 更新时间:2023-11-01 03:59:40 25 4
gpt4 key购买 nike

我有一个绝妙的主意来加快生成 36 个文件所需的时间:使用 36 个线程!!不幸的是,如果我启动一个具有 36 个线程/ session 的连接(一个 j2ssh 连接对象),那么一切都比我一次执行每个线程要滞后得多。
现在,如果我尝试创建 36 个新连接(36 个 j2ssh 连接对象),那么每个线程都有一个单独的服务器连接,要么我得到内存不足异常(程序仍然以某种方式运行,并成功结束它的工作,比我一个接一个地执行线程的时间慢)。

那怎么办?如何找到我应该使用的最佳线程数?因为 Thread.activeCount() 在启动我的 36 个线程之前是 3?!我正在使用联想笔记本电脑英特尔酷睿 i5。

最佳答案

您可以使用 ExecutorService 将其缩小到更合理的线程数。您可能希望使用接近可用处理器内核数量的东西,例如:

int threads = Runtime.getRuntime().availableProcessors();
ExecutorService service = Executors.newFixedThreadPool(threads);
for (int i = 0; i < 36; i++) {
service.execute(new Runnable() {
public void run() {
// do what you need per file here
}
});
}
service.shutdown();

关于java - 在java中运行多少个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5498999/

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