gpt4 book ai didi

java - 如何在 60 秒后停止 java 中正在运行的方法

转载 作者:行者123 更新时间:2023-11-30 06:11:38 26 4
gpt4 key购买 nike

我目前正在尝试学习如何在 60 秒后停止在 Java 中运行的方法,并提出了以下代码:

`long start = System.currentTimeMillis();
long end = start + 60000L;
while (System.currentTimeMillis() < end) {
Experiment.runToStringArrayListExperiment();
}`

使用此代码,我相信 Experiment 方法应该在 60 秒后停止运行,但是,它并没有这样做。我不知道我是否遗漏了一些东西,或者是否有我的疏忽,情况很可能是这样。如果您发现问题所在或有不同的方法来执行此操作,我们将不胜感激任何帮助。谢谢!

最佳答案

尝试将执行器的超时设置为 60 秒:

ExecutorService executor = Executors.newCachedThreadPool();

Callable<Object> task = new Callable<Object>() {
public Object call() {
return something.blockingMethod();
}
};

Future<Object> future = executor.submit(task);

try {
Object result = future.get(60, TimeUnit.SECONDS);
} catch (TimeoutException ex) {
// handle the timeout
} catch (InterruptedException e) {
// handle the interrupts
} catch (ExecutionException e) {
// handle other exceptions
} finally {
future.cancel(true);
}

关于java - 如何在 60 秒后停止 java 中正在运行的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50110631/

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