gpt4 book ai didi

java - Runnable run() 函数立即终止

转载 作者:行者123 更新时间:2023-11-29 09:03:20 25 4
gpt4 key购买 nike

<分区>

我目前正在尝试对我以前的一个程序进行多线程处理。这是下面的代码:

public class DipoleTester {
public static String DIR = "/home/";
public static void main(String[] args) throws InterruptedException {
Dipole trial;
ExecutorService service =
Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
for (int r = 10; r < 150; r += 1) {
double radius = (double) r / 10000.0;
for (int matType = 0; matType < 3; matType++) {
String name = matType + "_rad" + radius;
trial = new DipoleSimple(DIR, name);
trial.materialType = matType;
trial.RADIUS = radius;
service.submit(trial);
}
}
service.shutdown();
service.awaitTermination(Long.MAX_VALUE, TimeUnit.HOURS);
}
}

这是一个非常简单的程序。 run() 只是一个非常基本的方法,曾经是 main() 方法。评估平均需要大约 3 分钟。问题是,在这里,它似乎只是对 run() 进行异步调用,因为它会立即评估整个线程池。

即我期待它在 3-5 分钟内并行运行 8 个线程。但是相反,它运行每一个并说它几乎立即完成并加载线程池中的下一个线程。所以我只剩下几百个线程,它们都试图同时运行。

知道发生了什么吗?

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