gpt4 book ai didi

java - 从 future 抛出 InterruptedException

转载 作者:太空宇宙 更新时间:2023-11-04 14:37:51 25 4
gpt4 key购买 nike

假设我有一个方法如下:

public void poll(Callable<Boolean> callable) {
ScheduledExecutorService service = Executors.newSingleThreadedScheduledExecutor();

Future<Boolean> future = service.schedule(callable, 0L, TimeUnit.MILLISECONDS);
try {
while (!future.get()) {
future = service.schedule(callable, 5L, TimeUnit.MINUTES);
}
} catch (ExecutionException e) {
// ...
} catch (InterruptedException e) {
// ...
} finally {
service.shutdown();
}
}

InterruptedException 是如何做到的?曾经被扔过(并陷入 poll() 中)吗?可调用对象抛出的任何内容(包括 InterruptedException ,对吧?)都将是 ExecutionException ,我们从不取消任何 future ,服务的shutdownNow()从未被调用过。

旁白:既然如此,是否有可能使这种轮询方法更加防弹,以防止像 InterruptedException 这样的事情发生? ?

最佳答案

在等待(阻塞)可调用完成时,get 将抛出 InterruptedException

我不确定你所说的防弹是什么意思,你必须处理抛出异常的可能性。

关于java - 从 future 抛出 InterruptedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25335795/

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